package cmd import ( "fmt" "git.dayanhub.com/sagi/envoid/internal/datastore" "git.dayanhub.com/sagi/envoid/internal/errors" "git.dayanhub.com/sagi/envoid/internal/types" "github.com/spf13/cobra" ) type rmCmdFlags struct { envName *string } var rmFlags = rmCmdFlags{} var rmCmd = &cobra.Command{ Use: "rm ", Short: "removes a variable from environment(s)", Long: "", RunE: func(cmd *cobra.Command, args []string) error { err := initProject() if err != nil { return err } if project.IsEmpty() { return errors.NewProjectEmptyError(project.Name) } if len(args) != 1 { return errors.NewInvalidCommandError("expected 1 args. ") } key := args[0] ds, err := datastore.NewDataStore() if err != nil { fmt.Printf("Error: %e", err) } defer ds.Close() envs := project.Environments if len(*rmFlags.envName) != 0 { e, err := project.GetEnv(*rmFlags.envName) if err != nil { return err } envs = []*types.Environment{e} } ds.RemoveVar(key, envs) return nil }, } func init() { rmFlags.envName = rmCmd.Flags().StringP("environment", "e", "", "environments name") err := rmCmd.RegisterFlagCompletionFunc("environment", validEnvironmentNamesComplete) if err != nil { panic(err) } }