From 9f68f738cb1b4366891b068892738cac584aa51b Mon Sep 17 00:00:00 2001 From: Joel McLean Date: Wed, 28 Jan 2026 13:40:33 +1100 Subject: [PATCH 1/2] Updated main.go to allow for VMware Password input Signed-off-by: Joel McLean --- main.go | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/main.go b/main.go index e0244ec..2df31ca 100644 --- a/main.go +++ b/main.go @@ -6,7 +6,9 @@ import ( "net/url" "os" "time" - + "fmt" + "golang.org/x/term" + "strings" "github.com/erikgeiser/promptkit/confirmation" "github.com/gophercloud/gophercloud/v2/openstack/compute/v2/flavors" log "github.com/sirupsen/logrus" @@ -83,6 +85,22 @@ var rootCmd = &cobra.Command{ log.SetLevel(log.DebugLevel) } + if password == "" { + if !term.IsTerminal(int(os.Stdin.Fd())) { + return fmt.Errorf("password is required but terminal is not interactive; please provide --vmware-password flag") + } + fmt.Print("Enter VMware Password: ") + + // ReadPassword hides the user's typing for security + bytePassword, err := term.ReadPassword(int(os.Stdin.Fd())) + if err != nil { + fmt.Fprintf(os.Stderr, "Error reading password: %v\n", err) + return err + } + password = strings.TrimSpace(string(bytePassword)) + fmt.Println() // Add a newline since ReadPassword doesn't print one + } + endpointUrl := &url.URL{ Scheme: "https", Host: endpoint, From 2f561beee7699a065d3a4ee3e4acb89a23665eb7 Mon Sep 17 00:00:00 2001 From: "joel.mclean" Date: Wed, 28 Jan 2026 06:07:05 +0000 Subject: [PATCH 2/2] removed required vmware-password Signed-off-by: Joel McLean --- main.go | 1 - 1 file changed, 1 deletion(-) diff --git a/main.go b/main.go index 2df31ca..4f06ab4 100644 --- a/main.go +++ b/main.go @@ -353,7 +353,6 @@ func init() { rootCmd.MarkPersistentFlagRequired("vmware-username") rootCmd.PersistentFlags().StringVar(&password, "vmware-password", "", "VMware password") - rootCmd.MarkPersistentFlagRequired("vmware-password") rootCmd.PersistentFlags().StringVar(&path, "vmware-path", "", "VMware VM path (e.g. '/Datacenter/vm/VM')") rootCmd.MarkPersistentFlagRequired("vmware-path")