Skip to content

Commit

Permalink
feat(cli): add an optional env flag to app delete (#589)
Browse files Browse the repository at this point in the history
  • Loading branch information
wingkwong authored and kohidave committed Feb 22, 2020
1 parent fffd143 commit b328155
Showing 1 changed file with 33 additions and 5 deletions.
38 changes: 33 additions & 5 deletions internal/pkg/cli/app_delete.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ type deleteAppVars struct {
*GlobalOpts
SkipConfirmation bool
AppName string
EnvName string
}

type deleteAppOpts struct {
Expand Down Expand Up @@ -79,6 +80,11 @@ func (o *deleteAppOpts) Validate() error {
return err
}
}
if o.EnvName != "" {
if err := o.validateEnvName(); err != nil {
return err
}
}
return nil
}

Expand Down Expand Up @@ -133,6 +139,21 @@ func (o *deleteAppOpts) Execute() error {
return nil
}

func (o *deleteAppOpts) validateEnvName() error {
if _, err := o.targetEnv(); err != nil {
return err
}
return nil
}

func (o *deleteAppOpts) targetEnv() (*archer.Environment, error) {
env, err := o.projectService.GetEnvironment(o.ProjectName(), o.EnvName)
if err != nil {
return nil, fmt.Errorf("get environment %s from metadata store: %w", o.EnvName, err)
}
return env, nil
}

func (o *deleteAppOpts) askAppName() error {
if o.AppName != "" {
return nil
Expand Down Expand Up @@ -166,13 +187,19 @@ func (o *deleteAppOpts) retrieveAppNames() ([]string, error) {
}

func (o *deleteAppOpts) sourceProjectEnvironments() error {
envs, err := o.projectService.ListEnvironments(o.ProjectName())

if err != nil {
return fmt.Errorf("get environments: %w", err)
}
if o.EnvName != "" {
env, _ := o.targetEnv()
o.projectEnvironments = append(o.projectEnvironments, env)
} else {
envs, err := o.projectService.ListEnvironments(o.ProjectName())

o.projectEnvironments = envs
if err != nil {
return fmt.Errorf("get environments: %w", err)
}

o.projectEnvironments = envs
}

return nil
}
Expand Down Expand Up @@ -316,6 +343,7 @@ func BuildAppDeleteCmd() *cobra.Command {
}

cmd.Flags().StringVarP(&vars.AppName, nameFlag, nameFlagShort, "", appFlagDescription)
cmd.Flags().StringVarP(&vars.EnvName, envFlag, envFlagShort, "", envFlagDescription)
cmd.Flags().BoolVar(&vars.SkipConfirmation, yesFlag, false, yesFlagDescription)

return cmd
Expand Down

0 comments on commit b328155

Please sign in to comment.