Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions artifactory/utils/weblogin.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
package utils

import (
"bufio"
"errors"
"io"
"os"
"time"

"github.com/google/uuid"
Expand Down Expand Up @@ -40,6 +43,7 @@ func DoWebLogin(serverDetails *config.ServerDetails) (token auth.CommonTokenPara
log.Info("Please open the following URL in your browser to authenticate:")
log.Info(loginUrl)

waitForEnterBeforeBrowserOpen()
// Attempt to open in browser if available
if err = browser.OpenURL(loginUrl); err != nil {
log.Warn("Failed to automatically open the browser. Please open the URL manually.")
Expand All @@ -59,6 +63,22 @@ func DoWebLogin(serverDetails *config.ServerDetails) (token auth.CommonTokenPara
return
}

func waitForEnterBeforeBrowserOpen() {
stdinStat, err := os.Stdin.Stat()
if err != nil {
log.Debug("Skipping enter wait before opening browser:", err.Error())
return
}
if (stdinStat.Mode() & os.ModeCharDevice) == 0 {
return
}
log.Info("Press Enter to open the browser.")
_, err = bufio.NewReader(os.Stdin).ReadString('\n')
if err != nil && !errors.Is(err, io.EOF) {
log.Warn("Failed to read Enter input. Continuing with login flow.")
}
}

func sendUnauthenticatedPing(serverDetails *config.ServerDetails) error {
artifactoryManager, err := CreateServiceManager(serverDetails, 3, 0, false)
if err != nil {
Expand Down
Loading