diff --git a/cmd/entire/cli/integration_test/login_test.go b/cmd/entire/cli/integration_test/login_test.go index 5063c5443a..a6afd2c714 100644 --- a/cmd/entire/cli/integration_test/login_test.go +++ b/cmd/entire/cli/integration_test/login_test.go @@ -255,8 +255,8 @@ func waitForLoginPrompt(t *testing.T, stdout *bufio.Reader) (string, string) { switch { case strings.HasPrefix(line, "Device code: "): deviceCode = strings.TrimPrefix(line, "Device code: ") - case strings.HasPrefix(line, "Approval URL: "): - approvalURL = strings.TrimPrefix(line, "Approval URL: ") + case strings.HasPrefix(line, "Login URL:"): + approvalURL = strings.TrimSpace(strings.TrimPrefix(line, "Login URL:")) } if approvalURL != "" && deviceCode != "" { diff --git a/cmd/entire/cli/login.go b/cmd/entire/cli/login.go index 47cb8afac5..e6d799986e 100644 --- a/cmd/entire/cli/login.go +++ b/cmd/entire/cli/login.go @@ -78,7 +78,8 @@ func runLogin(ctx context.Context, outW, errW io.Writer, client deviceAuthClient // so opening the URL is usually all the user needs to do. The device // code is printed above regardless, so it's still available to confirm // against the page (RFC 8628 §3.3.1) or to enter on the bare-URI fallback. - fmt.Fprintf(outW, "Press Enter to open %s in your browser to approve this login...", approvalURL) + fmt.Fprintf(outW, "Login URL: %s\n\n", approvalURL) + fmt.Fprintf(outW, "Press Enter to open in browser...") // Read from /dev/tty so we get a real keypress and don't consume piped stdin. if err := waitForEnter(ctx); err != nil { @@ -91,10 +92,10 @@ func runLogin(ctx context.Context, outW, errW io.Writer, client deviceAuthClient fmt.Fprintf(outW, "Open this URL in your browser to approve this login: %s\n", approvalURL) } } else { - fmt.Fprintf(outW, "Approval URL: %s\n", approvalURL) + fmt.Fprintf(outW, "Login URL: %s\n\n", approvalURL) } - fmt.Fprintln(outW, "Waiting for approval...") + fmt.Fprint(outW, "Waiting for approval... ") token, refreshToken, err := waitForApproval(ctx, client, start.DeviceCode, start.ExpiresIn, time.Duration(start.Interval)*time.Second, defaultSlowDownBackoff) if err != nil { @@ -123,7 +124,7 @@ func runLogin(ctx context.Context, outW, errW io.Writer, client deviceAuthClient fmt.Fprintf(errW, "Warning: logged in, but could not record a shareable context (clone via entire:// may need a re-login): %v\n", err) } - fmt.Fprintln(outW, "Login complete.") + fmt.Fprintln(outW, "✓ Login complete.") return nil } diff --git a/mise-tasks/dev/publish b/mise-tasks/dev/publish index 2c4cf2d724..8ae041987b 100755 --- a/mise-tasks/dev/publish +++ b/mise-tasks/dev/publish @@ -6,4 +6,12 @@ set -eu export GOBIN=${GOPATH:-$HOME/go}/bin echo "NOTE: we're overriding \$GOBIN: $GOBIN" 1>&2 -go install ./cmd/entire ./cmd/git-remote-entire +commands=( + entire + git-remote-entire +) + +for c in "${commands[@]}"; do + go install "./cmd/$c" + echo "Installed: '$c'" 1>&2 +done