in internal/pkg/cli/app_delete.go [76:157]
func newDeleteAppOpts(vars deleteAppVars) (*deleteAppOpts, error) {
provider := sessions.ImmutableProvider(sessions.UserAgentExtras("app delete"))
defaultSession, err := provider.Default()
if err != nil {
return nil, fmt.Errorf("default session: %w", err)
}
prompter := prompt.New()
store := config.NewSSMStore(identity.New(defaultSession), ssm.New(defaultSession), aws.StringValue(defaultSession.Config.Region))
return &deleteAppOpts{
deleteAppVars: vars,
spinner: termprogress.NewSpinner(log.DiagnosticWriter),
store: store,
sessProvider: provider,
cfn: cloudformation.New(defaultSession, cloudformation.WithProgressTracker(os.Stderr)),
prompt: prompter,
s3: func(session *session.Session) bucketEmptier {
return s3.New(session)
},
pipelineLister: deploy.NewPipelineStore(rg.New(defaultSession)),
sel: selector.NewAppEnvSelector(prompter, store),
svcDeleteExecutor: func(appName, svcName string) (executor, error) {
opts, err := newDeleteSvcOpts(deleteSvcVars{
skipConfirmation: true, // always skip sub-confirmations
name: svcName,
appName: appName,
})
if err != nil {
return nil, err
}
return opts, nil
},
jobDeleteExecutor: func(appName, jobName string) (executor, error) {
opts, err := newDeleteJobOpts(deleteJobVars{
skipConfirmation: true,
name: jobName,
appName: appName,
})
if err != nil {
return nil, err
}
return opts, nil
},
envDeleteExecutor: func(appName, envName string) (executeAsker, error) {
opts, err := newDeleteEnvOpts(deleteEnvVars{
skipConfirmation: true,
appName: appName,
name: envName,
})
if err != nil {
return nil, err
}
return opts, nil
},
taskDeleteExecutor: func(appName, envName, taskName string) (executor, error) {
opts, err := newDeleteTaskOpts(deleteTaskVars{
app: appName,
env: envName,
name: taskName,
skipConfirmation: true,
})
if err != nil {
return nil, err
}
return opts, nil
},
pipelineDeleteExecutor: func(appName, pipelineName string) (executor, error) {
opts, err := newDeletePipelineOpts(deletePipelineVars{
appName: appName,
name: pipelineName,
skipConfirmation: true,
shouldDeleteSecret: true,
})
if err != nil {
return nil, err
}
return opts, nil
},
existingWorkSpace: func() (wsAppManagerDeleter, error) {
return workspace.Use(afero.NewOsFs())
},
}, nil
}