Skip to content
This repository was archived by the owner on Jul 18, 2025. It is now read-only.

Commit 3c05dee

Browse files
author
Jean-Christophe Sirot
committed
Move ParametersOptions in order to make it accessible from different command packages
Signed-off-by: Jean-Christophe Sirot <[email protected]>
1 parent 7d37627 commit 3c05dee

File tree

6 files changed

+40
-39
lines changed

6 files changed

+40
-39
lines changed

internal/cliopts/parameters.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package cliopts
2+
3+
import (
4+
"github.com/spf13/pflag"
5+
)
6+
7+
// ParametersOptions are shared CLI options about docker app parameters
8+
type ParametersOptions struct {
9+
ParametersFiles []string
10+
Overrides []string
11+
}
12+
13+
// AddFlags adds the shared CLI flags to the given flag set
14+
func (o *ParametersOptions) AddFlags(flags *pflag.FlagSet) {
15+
flags.StringArrayVar(&o.ParametersFiles, "parameters-file", []string{}, "Override parameters file")
16+
flags.StringArrayVarP(&o.Overrides, "set", "s", []string{}, "Override parameter value")
17+
}

internal/commands/image/render.go

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import (
66
"io"
77
"os"
88

9-
"github.com/spf13/pflag"
9+
"github.com/docker/app/internal/cliopts"
1010

1111
"github.com/deislabs/cnab-go/action"
1212
"github.com/docker/app/internal"
@@ -20,18 +20,8 @@ import (
2020
"github.com/spf13/cobra"
2121
)
2222

23-
type parametersOptions struct {
24-
ParametersFiles []string
25-
Overrides []string
26-
}
27-
28-
func (o *parametersOptions) addFlags(flags *pflag.FlagSet) {
29-
flags.StringArrayVar(&o.ParametersFiles, "parameters-file", []string{}, "Override parameters file")
30-
flags.StringArrayVarP(&o.Overrides, "set", "s", []string{}, "Override parameter value")
31-
}
32-
3323
type renderOptions struct {
34-
parametersOptions
24+
cliopts.ParametersOptions
3525
formatDriver string
3626
renderOutput string
3727
}
@@ -48,7 +38,7 @@ func renderCmd(dockerCli command.Cli) *cobra.Command {
4838
return runRender(dockerCli, args[0], opts)
4939
},
5040
}
51-
opts.parametersOptions.addFlags(cmd.Flags())
41+
opts.ParametersOptions.AddFlags(cmd.Flags())
5242
cmd.Flags().StringVarP(&opts.renderOutput, "output", "o", "-", "Output file")
5343
cmd.Flags().StringVar(&opts.formatDriver, "formatter", "yaml", "Configure the output format (yaml|json)")
5444

@@ -68,7 +58,7 @@ func runRender(dockerCli command.Cli, appname string, opts renderOptions) error
6858
w = f
6959
}
7060

71-
action, installation, errBuf, err := prepareCustomAction(internal.ActionRenderName, dockerCli, appname, w, opts.parametersOptions)
61+
action, installation, errBuf, err := prepareCustomAction(internal.ActionRenderName, dockerCli, appname, w, opts.ParametersOptions)
7262
if err != nil {
7363
return err
7464
}
@@ -80,7 +70,8 @@ func runRender(dockerCli command.Cli, appname string, opts renderOptions) error
8070
return nil
8171
}
8272

83-
func prepareCustomAction(actionName string, dockerCli command.Cli, appname string, stdout io.Writer, paramsOpts parametersOptions) (*action.RunCustom, *appstore.Installation, *bytes.Buffer, error) {
73+
func prepareCustomAction(actionName string, dockerCli command.Cli, appname string, stdout io.Writer,
74+
paramsOpts cliopts.ParametersOptions) (*action.RunCustom, *appstore.Installation, *bytes.Buffer, error) {
8475
s, err := appstore.NewApplicationStore(config.Dir())
8576
if err != nil {
8677
return nil, nil, nil, err

internal/commands/root.go

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -110,16 +110,6 @@ func prepareBundleStore() (store.BundleStore, error) {
110110
return bundleStore, nil
111111
}
112112

113-
type parametersOptions struct {
114-
parametersFiles []string
115-
overrides []string
116-
}
117-
118-
func (o *parametersOptions) addFlags(flags *pflag.FlagSet) {
119-
flags.StringArrayVar(&o.parametersFiles, "parameters-file", []string{}, "Override parameters file")
120-
flags.StringArrayVarP(&o.overrides, "set", "s", []string{}, "Override parameter value")
121-
}
122-
123113
type targetContextOptions struct {
124114
targetContext string
125115
}

internal/commands/run.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,15 @@ import (
44
"fmt"
55
"os"
66

7-
"github.com/docker/cli/cli"
7+
"github.com/docker/app/internal/cliopts"
88

99
"github.com/deislabs/cnab-go/action"
1010
"github.com/deislabs/cnab-go/bundle"
1111
"github.com/deislabs/cnab-go/credentials"
1212
bdl "github.com/docker/app/internal/bundle"
1313
"github.com/docker/app/internal/cnab"
1414
"github.com/docker/app/internal/store"
15+
"github.com/docker/cli/cli"
1516
"github.com/docker/cli/cli/command"
1617
"github.com/docker/docker/pkg/namesgenerator"
1718
"github.com/pkg/errors"
@@ -20,7 +21,7 @@ import (
2021
)
2122

2223
type runOptions struct {
23-
parametersOptions
24+
cliopts.ParametersOptions
2425
credentialOptions
2526
orchestrator string
2627
kubeNamespace string
@@ -59,7 +60,7 @@ func runCmd(dockerCli command.Cli) *cobra.Command {
5960
return runCnab(dockerCli, opts)
6061
},
6162
}
62-
opts.parametersOptions.addFlags(cmd.Flags())
63+
opts.ParametersOptions.AddFlags(cmd.Flags())
6364
opts.credentialOptions.addFlags(cmd.Flags())
6465
cmd.Flags().StringVar(&opts.orchestrator, "orchestrator", "", "Orchestrator to install on (swarm, kubernetes)")
6566
cmd.Flags().StringVar(&opts.kubeNamespace, "namespace", "default", "Kubernetes namespace to install into")
@@ -131,8 +132,8 @@ func runBundle(dockerCli command.Cli, bndl *bundle.Bundle, opts runOptions, ref
131132
installation.Bundle = bndl
132133

133134
if err := bdl.MergeBundleParameters(installation,
134-
bdl.WithFileParameters(opts.parametersFiles),
135-
bdl.WithCommandLineParameters(opts.overrides),
135+
bdl.WithFileParameters(opts.ParametersFiles),
136+
bdl.WithCommandLineParameters(opts.Overrides),
136137
bdl.WithLabels(opts.labels),
137138
bdl.WithOrchestratorParameters(opts.orchestrator, opts.kubeNamespace),
138139
bdl.WithSendRegistryAuth(opts.sendRegistryAuth),

internal/commands/update.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,14 @@ import (
77
"github.com/deislabs/cnab-go/action"
88
"github.com/deislabs/cnab-go/credentials"
99
"github.com/docker/app/internal/bundle"
10+
"github.com/docker/app/internal/cliopts"
1011
"github.com/docker/app/internal/cnab"
1112
"github.com/docker/cli/cli/command"
1213
"github.com/spf13/cobra"
1314
)
1415

1516
type updateOptions struct {
16-
parametersOptions
17+
cliopts.ParametersOptions
1718
credentialOptions
1819
bundleOrDockerApp string
1920
}
@@ -29,7 +30,7 @@ func updateCmd(dockerCli command.Cli) *cobra.Command {
2930
return runUpdate(dockerCli, args[0], opts)
3031
},
3132
}
32-
opts.parametersOptions.addFlags(cmd.Flags())
33+
opts.ParametersOptions.AddFlags(cmd.Flags())
3334
opts.credentialOptions.addFlags(cmd.Flags())
3435
cmd.Flags().StringVar(&opts.bundleOrDockerApp, "image", "", "Override the running App with another App image")
3536

@@ -62,8 +63,8 @@ func runUpdate(dockerCli command.Cli, installationName string, opts updateOption
6263
installation.Bundle = b
6364
}
6465
if err := bundle.MergeBundleParameters(installation,
65-
bundle.WithFileParameters(opts.parametersFiles),
66-
bundle.WithCommandLineParameters(opts.overrides),
66+
bundle.WithFileParameters(opts.ParametersFiles),
67+
bundle.WithCommandLineParameters(opts.Overrides),
6768
bundle.WithSendRegistryAuth(opts.sendRegistryAuth),
6869
); err != nil {
6970
return err

internal/commands/validate.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,19 @@ import (
44
"fmt"
55
"os"
66

7+
"github.com/docker/app/internal/cliopts"
78
"github.com/docker/app/internal/compose"
89
"github.com/docker/app/internal/packager"
910
"github.com/docker/app/render"
1011
"github.com/docker/app/types"
1112
"github.com/docker/cli/cli"
12-
cliopts "github.com/docker/cli/opts"
13+
dockercliopts "github.com/docker/cli/opts"
1314
"github.com/pkg/errors"
1415
"github.com/spf13/cobra"
1516
)
1617

1718
type validateOptions struct {
18-
parametersOptions
19+
cliopts.ParametersOptions
1920
}
2021

2122
func validateCmd() *cobra.Command {
@@ -29,19 +30,19 @@ func validateCmd() *cobra.Command {
2930
return runValidate(args, opts)
3031
},
3132
}
32-
opts.parametersOptions.addFlags(cmd.Flags())
33+
opts.ParametersOptions.AddFlags(cmd.Flags())
3334
return cmd
3435
}
3536

3637
func runValidate(args []string, opts validateOptions) error {
3738
app, err := packager.Extract(firstOrEmpty(args),
38-
types.WithParametersFiles(opts.parametersFiles...),
39+
types.WithParametersFiles(opts.ParametersFiles...),
3940
)
4041
if err != nil {
4142
return err
4243
}
4344
defer app.Cleanup()
44-
argParameters := cliopts.ConvertKVStringsToMap(opts.overrides)
45+
argParameters := dockercliopts.ConvertKVStringsToMap(opts.Overrides)
4546
_, err = render.Render(app, argParameters, nil)
4647
if err != nil {
4748
return err

0 commit comments

Comments
 (0)