diff --git a/flist.v b/flist.v index 44db5b4..4f8001b 100644 --- a/flist.v +++ b/flist.v @@ -90,7 +90,7 @@ fn login() { mut token_exists := os.exists(token_file) mut docker_logged_in := false - docker_user_result := os.execute("sudo docker system info | grep 'Username' | cut -d ' ' -f 3") + docker_user_result := os.execute('docker-credential-$(jq -r .credsStore ~/.docker/config.json) list | jq -r \'. | to_entries[] | select(.key | contains("docker.io")) | last(.value)\' | head -n 1') if docker_user_result.exit_code == 0 && docker_user_result.output.trim_space() != '' { docker_logged_in = true } @@ -142,7 +142,7 @@ fn logout() { } fn push(tag string) { - docker_user_result := os.execute("sudo docker system info | grep 'Username' | cut -d ' ' -f 3") + docker_user_result := os.execute('docker-credential-$(jq -r .credsStore ~/.docker/config.json) list | jq -r \'. | to_entries[] | select(.key | contains("docker.io")) | last(.value)\' | head -n 1') if docker_user_result.exit_code != 0 || docker_user_result.output.trim_space() == '' { error_message('Failed to get Docker username. Please ensure you are logged in to Docker.') exit(1)