feat: add updater and previewer interfaces
This commit is contained in:
parent
ed6afb94a1
commit
c0fcf316b4
2 changed files with 63 additions and 11 deletions
|
@ -75,7 +75,7 @@ func previewFunc(ctx context.Context, file, stack *string) clir.Action {
|
|||
return fmt.Errorf("unable to get configuration...\n%v", err)
|
||||
}
|
||||
|
||||
previewer, err := stacks.NewPreviewer(ctx, c.ProjectName, *stack, c)
|
||||
previewer, err := stacks.NewPreviewer(ctx, *stack, c)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -99,10 +99,19 @@ func updateFunc(ctx context.Context, file, stack *string) clir.Action {
|
|||
return err
|
||||
}
|
||||
|
||||
// parse json configuration (config package)
|
||||
// create the updater (interface in stacks) (all logic in stacks)
|
||||
// run the previewer
|
||||
// return
|
||||
c, err := config.NewConfig(*flagMap["file"])
|
||||
if err != nil {
|
||||
return fmt.Errorf("unable to get configuration...\n%v", err)
|
||||
}
|
||||
|
||||
updater, err := stacks.NewUpdater(ctx, *stack, c)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := updater.Update(ctx); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
@ -119,10 +128,19 @@ func destroyFunc(ctx context.Context, file, stack *string) clir.Action {
|
|||
return err
|
||||
}
|
||||
|
||||
// parse json configuration (config package)
|
||||
// create the destroyer (interface in stacks) (all logic in stacks)
|
||||
// run the previewer
|
||||
// return
|
||||
c, err := config.NewConfig(*flagMap["file"])
|
||||
if err != nil {
|
||||
return fmt.Errorf("unable to get configuration...\n%v", err)
|
||||
}
|
||||
|
||||
destroyer, err := stacks.NewDestroyer(ctx, *stack, c)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := destroyer.Destroy(ctx); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -85,13 +85,13 @@ func workspaceOptions(projectName, stackName string) ([]auto.LocalWorkspaceOptio
|
|||
return opts, nil
|
||||
}
|
||||
|
||||
func NewPreviewer(ctx context.Context, project, stack string, c config.Config) (Previewer, error) {
|
||||
func NewPreviewer(ctx context.Context, stack string, c config.Config) (Previewer, error) {
|
||||
var p Previewer
|
||||
var err error
|
||||
|
||||
switch stack {
|
||||
case dockerNetworkStackName:
|
||||
p, err = newDockerNetworkStack(ctx, project, stack, c.Docker.Network)
|
||||
p, err = newDockerNetworkStack(ctx, c.ProjectName, stack, c.Docker.Network)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("unable to initialise '%s' stack...\n%v", stack, err)
|
||||
}
|
||||
|
@ -101,3 +101,37 @@ func NewPreviewer(ctx context.Context, project, stack string, c config.Config) (
|
|||
|
||||
return p, nil
|
||||
}
|
||||
|
||||
func NewUpdater(ctx context.Context, stack string, c config.Config) (Updater, error) {
|
||||
var u Updater
|
||||
var err error
|
||||
|
||||
switch stack {
|
||||
case dockerNetworkStackName:
|
||||
u, err = newDockerNetworkStack(ctx, c.ProjectName, stack, c.Docker.Network)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("unable to initialise '%s' stack...\n%v", stack, err)
|
||||
}
|
||||
default:
|
||||
return nil, fmt.Errorf("unknown stack name '%s'", stack)
|
||||
}
|
||||
|
||||
return u, nil
|
||||
}
|
||||
|
||||
func NewDestroyer(ctx context.Context, stack string, c config.Config) (Destroyer, error) {
|
||||
var d Destroyer
|
||||
var err error
|
||||
|
||||
switch stack {
|
||||
case dockerNetworkStackName:
|
||||
d, err = newDockerNetworkStack(ctx, c.ProjectName, stack, c.Docker.Network)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("unable to initialise '%s' stack...\n%v", stack, err)
|
||||
}
|
||||
default:
|
||||
return nil, fmt.Errorf("unknown stack name '%s'", stack)
|
||||
}
|
||||
|
||||
return d, nil
|
||||
}
|
||||
|
|
Reference in a new issue