in internal/pkg/cli/app_delete.go [66:151]
func newDeleteAppOpts(vars deleteAppVars) (*deleteAppOpts, error) {
store, err := config.NewStore()
if err != nil {
return nil, fmt.Errorf("new config store: %w", err)
}
ws, err := workspace.New()
if err != nil {
return nil, fmt.Errorf("new workspace: %w", err)
}
provider := sessions.NewProvider()
defaultSession, err := provider.Default()
if err != nil {
return nil, fmt.Errorf("default session: %w", err)
}
return &deleteAppOpts{
deleteAppVars: vars,
spinner: termprogress.NewSpinner(log.DiagnosticWriter),
store: store,
ws: ws,
sessProvider: provider,
cfn: cloudformation.New(defaultSession),
prompt: prompt.New(),
s3: func(session *session.Session) bucketEmptier {
return s3.New(session)
},
svcDeleteExecutor: func(svcName string) (executor, error) {
opts, err := newDeleteSvcOpts(deleteSvcVars{
skipConfirmation: true, // always skip sub-confirmations
name: svcName,
appName: vars.name,
})
if err != nil {
return nil, err
}
return opts, nil
},
jobDeleteExecutor: func(jobName string) (executor, error) {
opts, err := newDeleteJobOpts(deleteJobVars{
skipConfirmation: true,
name: jobName,
appName: vars.name,
})
if err != nil {
return nil, err
}
return opts, nil
},
envDeleteExecutor: func(envName string) (executeAsker, error) {
opts, err := newDeleteEnvOpts(deleteEnvVars{
skipConfirmation: true,
appName: vars.name,
name: envName,
})
if err != nil {
return nil, err
}
return opts, nil
},
taskDeleteExecutor: func(envName, taskName string) (executor, error) {
opts, err := newDeleteTaskOpts(deleteTaskVars{
app: vars.name,
env: envName,
name: taskName,
skipConfirmation: true,
})
if err != nil {
return nil, err
}
return opts, nil
},
deletePipelineRunner: func() (cmd, error) {
opts, err := newDeletePipelineOpts(deletePipelineVars{
appName: vars.name,
skipConfirmation: true,
shouldDeleteSecret: true,
})
if err != nil {
return nil, err
}
return opts, nil
},
}, nil
}