diff --git a/TODO b/TODO index 2eb17d1..a4d0110 100644 --- a/TODO +++ b/TODO @@ -1,6 +1,6 @@ - move detection to https://github.com/coollabsio/coolpack -- Env vars should use `--prod` to delete prod, instead of deleting prod by default and using `--preview` to delete preview +- Env vars should use `--prod` to delete prod, instead of deleting prod by default and using `--preview` to delete preview - DONE - Fix spacing issues (use debug flag `CDP_DEBUG=1 cdp`) to see where it is coming from - **BIG THING:** allow preview deployments with git setup - For Docker this cannot work, but git deploys should set up Coolify to work with GitHub PRs on the deploy repo diff --git a/cmd/env.go b/cmd/env.go index d17b929..7d2417d 100644 --- a/cmd/env.go +++ b/cmd/env.go @@ -58,8 +58,8 @@ func init() { envCmd.AddCommand(envPullCmd) envCmd.AddCommand(envPushCmd) - // Add --preview flag for env commands to target preview deployments (from PRs) envCmd.PersistentFlags().BoolVar(&previewFlag, "preview", false, "Target preview deployments (from Pull Requests)") + envCmd.PersistentFlags().BoolVar(&prodFlag, "prod", false, "Target main production deployment") } func getAppUUID() (string, *api.Client, error) { @@ -163,7 +163,15 @@ func runEnvAdd(cmd *cobra.Command, args []string) error { return err } - // Set is_preview based on flag + if prodFlag && previewFlag { + ui.Error("Cannot use both --prod and --preview") + return fmt.Errorf("conflicting flags") + } + + if !prodFlag && !previewFlag { + ui.Error("You must specify exactly one of --prod or --preview") + return fmt.Errorf("missing environment target flag") + } isPreview := previewFlag ui.Info(fmt.Sprintf("Adding %s...", key)) @@ -189,6 +197,20 @@ func runEnvRm(cmd *cobra.Command, args []string) error { return err } + if !prodFlag && !previewFlag { + ui.Error("Must use either --prod or --preview flag") + ui.Spacer() + ui.Print("Examples:") + ui.Print(" " + ui.CodeStyle.Render(fmt.Sprintf("%s env rm KEY --prod", execName()))) + ui.Print(" " + ui.CodeStyle.Render(fmt.Sprintf("%s env rm KEY --preview", execName()))) + return fmt.Errorf("deployment type not specified") + } + + if prodFlag && previewFlag { + ui.Error("Cannot use both --prod and --preview") + return fmt.Errorf("conflicting flags") + } + // Confirm deletion confirmed, err := ui.ConfirmAction("remove environment variable", key) if err != nil { @@ -246,6 +268,11 @@ func runEnvPull(cmd *cobra.Command, args []string) error { return err } + if prodFlag && previewFlag { + ui.Error("Cannot use both --prod and --preview") + return fmt.Errorf("conflicting flags") + } + deploymentType := "production" if previewFlag { deploymentType = "preview" @@ -316,6 +343,11 @@ func runEnvPush(cmd *cobra.Command, args []string) error { return err } + if prodFlag && previewFlag { + ui.Error("Cannot use both --prod and --preview") + return fmt.Errorf("conflicting flags") + } + deploymentType := "production" if previewFlag { deploymentType = "preview" diff --git a/cmd/root.go b/cmd/root.go index 0fef207..3f16154 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -18,6 +18,7 @@ var ( // Flags for env command previewFlag bool + prodFlag bool // Global verbose flag verboseFlag bool