From fe2663046c1492bb20b11749dcfcd30837bb08cf Mon Sep 17 00:00:00 2001 From: mrrishi Date: Fri, 20 Sep 2024 01:05:04 +0530 Subject: [PATCH] feat:bypass bubbletea --- cmd/akamai/create.go | 35 ++++++++++++++++++++--------------- cmd/aws/create.go | 35 ++++++++++++++++++++--------------- cmd/civo/create.go | 35 ++++++++++++++++++++--------------- cmd/digitalocean/create.go | 36 +++++++++++++++++++++--------------- cmd/google/create.go | 35 ++++++++++++++++++++--------------- cmd/k3s/create.go | 35 ++++++++++++++++++++--------------- cmd/root.go | 7 ++++++- cmd/vultr/create.go | 35 +++++++++++++++++++++-------------- internal/progress/message.go | 6 ++++++ main.go | 2 +- 10 files changed, 155 insertions(+), 106 deletions(-) diff --git a/cmd/akamai/create.go b/cmd/akamai/create.go index 68230813..9e9d0956 100644 --- a/cmd/akamai/create.go +++ b/cmd/akamai/create.go @@ -99,7 +99,10 @@ func createAkamai(cmd *cobra.Command, _ []string) error { } func ValidateProvidedFlags(gitProvider string) error { - progress.AddStep("Validate provided flags") + + if progress.CanRunBubbleTea { + progress.AddStep("Validate provided flags") + } if os.Getenv("LINODE_TOKEN") == "" { return fmt.Errorf("your LINODE_TOKEN is not set - please set and re-run your last command") @@ -111,22 +114,24 @@ func ValidateProvidedFlags(gitProvider string) error { } } - switch gitProvider { - case "github": - key, err := internalssh.GetHostKey("github.com") - if err != nil { - return fmt.Errorf("failed to fetch github host key: %w", err) + if progress.CanRunBubbleTea { + switch gitProvider { + case "github": + key, err := internalssh.GetHostKey("github.com") + if err != nil { + return fmt.Errorf("failed to fetch github host key: %w", err) + } + log.Info().Msgf("%q %s", "github.com", key.Type()) + case "gitlab": + key, err := internalssh.GetHostKey("gitlab.com") + if err != nil { + return fmt.Errorf("failed to fetch gitlab host key: %w", err) + } + log.Info().Msgf("%q %s", "gitlab.com", key.Type()) } - log.Info().Msgf("%q %s", "github.com", key.Type()) - case "gitlab": - key, err := internalssh.GetHostKey("gitlab.com") - if err != nil { - return fmt.Errorf("failed to fetch gitlab host key: %w", err) - } - log.Info().Msgf("%q %s", "gitlab.com", key.Type()) - } - progress.CompleteStep("Validate provided flags") + progress.CompleteStep("Validate provided flags") + } return nil } diff --git a/cmd/aws/create.go b/cmd/aws/create.go index c917a98e..0ca32c0d 100644 --- a/cmd/aws/create.go +++ b/cmd/aws/create.go @@ -133,7 +133,10 @@ func createAws(cmd *cobra.Command, _ []string) error { } func ValidateProvidedFlags(gitProvider string) error { - progress.AddStep("Validate provided flags") + + if progress.CanRunBubbleTea { + progress.AddStep("Validate provided flags") + } // Validate required environment variables for dns provider if dnsProviderFlag == "cloudflare" { @@ -142,22 +145,24 @@ func ValidateProvidedFlags(gitProvider string) error { } } - switch gitProvider { - case "github": - key, err := internalssh.GetHostKey("github.com") - if err != nil { - return fmt.Errorf("known_hosts file does not exist - please run `ssh-keyscan github.com >> ~/.ssh/known_hosts` to remedy: %w", err) + if progress.CanRunBubbleTea { + switch gitProvider { + case "github": + key, err := internalssh.GetHostKey("github.com") + if err != nil { + return fmt.Errorf("known_hosts file does not exist - please run `ssh-keyscan github.com >> ~/.ssh/known_hosts` to remedy: %w", err) + } + log.Info().Msgf("%q %s", "github.com", key.Type()) + case "gitlab": + key, err := internalssh.GetHostKey("gitlab.com") + if err != nil { + return fmt.Errorf("known_hosts file does not exist - please run `ssh-keyscan gitlab.com >> ~/.ssh/known_hosts` to remedy: %w", err) + } + log.Info().Msgf("%q %s", "gitlab.com", key.Type()) } - log.Info().Msgf("%q %s", "github.com", key.Type()) - case "gitlab": - key, err := internalssh.GetHostKey("gitlab.com") - if err != nil { - return fmt.Errorf("known_hosts file does not exist - please run `ssh-keyscan gitlab.com >> ~/.ssh/known_hosts` to remedy: %w", err) - } - log.Info().Msgf("%q %s", "gitlab.com", key.Type()) - } + progress.CompleteStep("Validate provided flags") - progress.CompleteStep("Validate provided flags") + } return nil } diff --git a/cmd/civo/create.go b/cmd/civo/create.go index 14592cea..44f78b62 100644 --- a/cmd/civo/create.go +++ b/cmd/civo/create.go @@ -102,7 +102,10 @@ func createCivo(cmd *cobra.Command, _ []string) error { } func ValidateProvidedFlags(gitProvider string) error { - progress.AddStep("Validate provided flags") + + if progress.CanRunBubbleTea { + progress.AddStep("Validate provided flags") + } if os.Getenv("CIVO_TOKEN") == "" { return fmt.Errorf("your CIVO_TOKEN is not set - please set and re-run your last command") @@ -115,22 +118,24 @@ func ValidateProvidedFlags(gitProvider string) error { } } - switch gitProvider { - case "github": - key, err := internalssh.GetHostKey("github.com") - if err != nil { - return fmt.Errorf("known_hosts file does not exist - please run `ssh-keyscan github.com >> ~/.ssh/known_hosts` to remedy") + if progress.CanRunBubbleTea { + switch gitProvider { + case "github": + key, err := internalssh.GetHostKey("github.com") + if err != nil { + return fmt.Errorf("known_hosts file does not exist - please run `ssh-keyscan github.com >> ~/.ssh/known_hosts` to remedy") + } + log.Info().Msgf("github.com %q", key.Type()) + case "gitlab": + key, err := internalssh.GetHostKey("gitlab.com") + if err != nil { + return fmt.Errorf("known_hosts file does not exist - please run `ssh-keyscan gitlab.com >> ~/.ssh/known_hosts` to remedy") + } + log.Info().Msgf("gitlab.com %q", key.Type()) } - log.Info().Msgf("github.com %q", key.Type()) - case "gitlab": - key, err := internalssh.GetHostKey("gitlab.com") - if err != nil { - return fmt.Errorf("known_hosts file does not exist - please run `ssh-keyscan gitlab.com >> ~/.ssh/known_hosts` to remedy") - } - log.Info().Msgf("gitlab.com %q", key.Type()) - } - progress.CompleteStep("Validate provided flags") + progress.CompleteStep("Validate provided flags") + } return nil } diff --git a/cmd/digitalocean/create.go b/cmd/digitalocean/create.go index c1213496..c0496c4d 100644 --- a/cmd/digitalocean/create.go +++ b/cmd/digitalocean/create.go @@ -111,7 +111,11 @@ func createDigitalocean(cmd *cobra.Command, _ []string) error { } func ValidateProvidedFlags(gitProvider string) error { - progress.AddStep("Validate provided flags") + + if progress.CanRunBubbleTea { + progress.AddStep("Validate provided flags") + + } // Validate required environment variables for dns provider if dnsProviderFlag == "cloudflare" { @@ -126,22 +130,24 @@ func ValidateProvidedFlags(gitProvider string) error { } } - switch gitProvider { - case "github": - key, err := internalssh.GetHostKey("github.com") - if err != nil { - return fmt.Errorf("known_hosts file does not exist - please run `ssh-keyscan github.com >> ~/.ssh/known_hosts` to remedy") + if progress.CanRunBubbleTea { + switch gitProvider { + case "github": + key, err := internalssh.GetHostKey("github.com") + if err != nil { + return fmt.Errorf("known_hosts file does not exist - please run `ssh-keyscan github.com >> ~/.ssh/known_hosts` to remedy") + } + log.Info().Msgf("%q %s", "github.com", key.Type()) + case "gitlab": + key, err := internalssh.GetHostKey("gitlab.com") + if err != nil { + return fmt.Errorf("known_hosts file does not exist - please run `ssh-keyscan gitlab.com >> ~/.ssh/known_hosts` to remedy") + } + log.Info().Msgf("%q %s", "gitlab.com", key.Type()) } - log.Info().Msgf("%q %s", "github.com", key.Type()) - case "gitlab": - key, err := internalssh.GetHostKey("gitlab.com") - if err != nil { - return fmt.Errorf("known_hosts file does not exist - please run `ssh-keyscan gitlab.com >> ~/.ssh/known_hosts` to remedy") - } - log.Info().Msgf("%q %s", "gitlab.com", key.Type()) - } - progress.CompleteStep("Validate provided flags") + progress.CompleteStep("Validate provided flags") + } return nil } diff --git a/cmd/google/create.go b/cmd/google/create.go index bb074d9b..a78a9f73 100644 --- a/cmd/google/create.go +++ b/cmd/google/create.go @@ -104,7 +104,10 @@ func createGoogle(cmd *cobra.Command, _ []string) error { } func ValidateProvidedFlags(gitProvider string) error { - progress.AddStep("Validate provided flags") + + if progress.CanRunBubbleTea { + progress.AddStep("Validate provided flags") + } if os.Getenv("GOOGLE_APPLICATION_CREDENTIALS") == "" { return fmt.Errorf("your GOOGLE_APPLICATION_CREDENTIALS is not set - please set and re-run your last command") @@ -116,22 +119,24 @@ func ValidateProvidedFlags(gitProvider string) error { return fmt.Errorf("could not open GOOGLE_APPLICATION_CREDENTIALS file: %w", err) } - switch gitProvider { - case "github": - key, err := internalssh.GetHostKey("github.com") - if err != nil { - return fmt.Errorf("known_hosts file does not exist - please run `ssh-keyscan github.com >> ~/.ssh/known_hosts` to remedy: %w", err) + if progress.CanRunBubbleTea { + switch gitProvider { + case "github": + key, err := internalssh.GetHostKey("github.com") + if err != nil { + return fmt.Errorf("known_hosts file does not exist - please run `ssh-keyscan github.com >> ~/.ssh/known_hosts` to remedy: %w", err) + } + log.Info().Msgf("%q %s", "github.com", key.Type()) + case "gitlab": + key, err := internalssh.GetHostKey("gitlab.com") + if err != nil { + return fmt.Errorf("known_hosts file does not exist - please run `ssh-keyscan gitlab.com >> ~/.ssh/known_hosts` to remedy: %w", err) + } + log.Info().Msgf("%q %s", "gitlab.com", key.Type()) } - log.Info().Msgf("%q %s", "github.com", key.Type()) - case "gitlab": - key, err := internalssh.GetHostKey("gitlab.com") - if err != nil { - return fmt.Errorf("known_hosts file does not exist - please run `ssh-keyscan gitlab.com >> ~/.ssh/known_hosts` to remedy: %w", err) - } - log.Info().Msgf("%q %s", "gitlab.com", key.Type()) - } + progress.CompleteStep("Validate provided flags") - progress.CompleteStep("Validate provided flags") + } return nil } diff --git a/cmd/k3s/create.go b/cmd/k3s/create.go index 03833775..8f76a643 100644 --- a/cmd/k3s/create.go +++ b/cmd/k3s/create.go @@ -114,24 +114,29 @@ func createK3s(cmd *cobra.Command, _ []string) error { } func ValidateProvidedFlags(gitProvider string) error { - progress.AddStep("Validate provided flags") - switch gitProvider { - case "github": - key, err := internalssh.GetHostKey("github.com") - if err != nil { - return fmt.Errorf("known_hosts file does not exist - please run `ssh-keyscan github.com >> ~/.ssh/known_hosts` to remedy") - } - log.Info().Msgf("%q %s", "github.com", key.Type()) - case "gitlab": - key, err := internalssh.GetHostKey("gitlab.com") - if err != nil { - return fmt.Errorf("known_hosts file does not exist - please run `ssh-keyscan gitlab.com >> ~/.ssh/known_hosts` to remedy") - } - log.Info().Msgf("%q %s", "gitlab.com", key.Type()) + if progress.CanRunBubbleTea { + progress.AddStep("Validate provided flags") } - progress.CompleteStep("Validate provided flags") + if progress.CanRunBubbleTea { + switch gitProvider { + case "github": + key, err := internalssh.GetHostKey("github.com") + if err != nil { + return fmt.Errorf("known_hosts file does not exist - please run `ssh-keyscan github.com >> ~/.ssh/known_hosts` to remedy") + } + log.Info().Msgf("%q %s", "github.com", key.Type()) + case "gitlab": + key, err := internalssh.GetHostKey("gitlab.com") + if err != nil { + return fmt.Errorf("known_hosts file does not exist - please run `ssh-keyscan gitlab.com >> ~/.ssh/known_hosts` to remedy") + } + log.Info().Msgf("%q %s", "gitlab.com", key.Type()) + } + + progress.CompleteStep("Validate provided flags") + } return nil } diff --git a/cmd/root.go b/cmd/root.go index 88659b29..94f5265e 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -8,6 +8,7 @@ package cmd import ( "fmt" + "os" "github.com/konstructio/kubefirst-api/pkg/configs" "github.com/konstructio/kubefirst-api/pkg/progressPrinter" @@ -50,7 +51,11 @@ func Execute() { fmt.Println("Error occurred during command execution:", err) fmt.Println("If a detailed error message was available, please make the necessary corrections before retrying.") fmt.Println("You can re-run the last command to try the operation again.") - progress.Progress.Quit() + if progress.CanRunBubbleTea { + progress.Progress.Quit() + } else { + os.Exit(1) + } } } diff --git a/cmd/vultr/create.go b/cmd/vultr/create.go index 6086ae2b..cb043855 100644 --- a/cmd/vultr/create.go +++ b/cmd/vultr/create.go @@ -111,7 +111,11 @@ func createVultr(cmd *cobra.Command, _ []string) error { } func ValidateProvidedFlags(gitProvider string) error { - progress.AddStep("Validate provided flags") + + if progress.CanRunBubbleTea { + progress.AddStep("Validate provided flags") + + } if os.Getenv("VULTR_API_KEY") == "" { return fmt.Errorf("your VULTR_API_KEY variable is unset - please set it before continuing") @@ -123,21 +127,24 @@ func ValidateProvidedFlags(gitProvider string) error { } } - switch gitProvider { - case "github": - key, err := internalssh.GetHostKey("github.com") - if err != nil { - return fmt.Errorf("known_hosts file does not exist - please run `ssh-keyscan github.com >> ~/.ssh/known_hosts` to remedy: %w", err) + if progress.CanRunBubbleTea { + switch gitProvider { + case "github": + key, err := internalssh.GetHostKey("github.com") + if err != nil { + return fmt.Errorf("known_hosts file does not exist - please run `ssh-keyscan github.com >> ~/.ssh/known_hosts` to remedy: %w", err) + } + log.Info().Msgf("%q %s", "github.com", key.Type()) + case "gitlab": + key, err := internalssh.GetHostKey("gitlab.com") + if err != nil { + return fmt.Errorf("known_hosts file does not exist - please run `ssh-keyscan gitlab.com >> ~/.ssh/known_hosts` to remedy: %w", err) + } + log.Info().Msgf("%q %s", "gitlab.com", key.Type()) } - log.Info().Msgf("%q %s", "github.com", key.Type()) - case "gitlab": - key, err := internalssh.GetHostKey("gitlab.com") - if err != nil { - return fmt.Errorf("known_hosts file does not exist - please run `ssh-keyscan gitlab.com >> ~/.ssh/known_hosts` to remedy: %w", err) - } - log.Info().Msgf("%q %s", "gitlab.com", key.Type()) + + progress.CompleteStep("Validate provided flags") } - progress.CompleteStep("Validate provided flags") return nil } diff --git a/internal/progress/message.go b/internal/progress/message.go index 33e42377..45f54dd1 100644 --- a/internal/progress/message.go +++ b/internal/progress/message.go @@ -187,6 +187,12 @@ func DisplayCredentials(cluster types.Cluster) { func AddStep(message string) { renderedMessage := createStep(fmt.Sprintf("%s %s", ":dizzy:", message)) + + if !CanRunBubbleTea { + fmt.Println(renderedMessage) + return + } + Progress.Send(renderedMessage) } diff --git a/main.go b/main.go index 9d311763..aabb0abc 100644 --- a/main.go +++ b/main.go @@ -25,7 +25,7 @@ import ( func main() { argsWithProg := os.Args - bubbleTeaBlacklist := []string{"completion", "help", "--help", "-h", "quota", "logs", "ci"} + bubbleTeaBlacklist := []string{"completion", "help", "--help", "-h", "quota", "logs", "--ci"} canRunBubbleTea := true for _, arg := range argsWithProg {