@@ -3,11 +3,11 @@ package stack
33import (
44 "errors"
55 "fmt"
6+ "io"
67 "strings"
78
89 "github.com/docker/cli/cli"
910 "github.com/docker/cli/cli/command"
10- cliconfig "github.com/docker/cli/cli/config"
1111 "github.com/docker/cli/cli/config/configfile"
1212 "github.com/spf13/cobra"
1313 "github.com/spf13/pflag"
@@ -27,12 +27,12 @@ func NewStackCommand(dockerCli command.Cli) *cobra.Command {
2727 Short : "Manage Docker stacks" ,
2828 Args : cli .NoArgs ,
2929 PersistentPreRunE : func (cmd * cobra.Command , args []string ) error {
30- orchestrator , err := getOrchestrator (dockerCli .ConfigFile (), cmd )
30+ orchestrator , err := getOrchestrator (dockerCli .ConfigFile (), cmd , dockerCli . Err () )
3131 if err != nil {
3232 return err
3333 }
3434 opts .orchestrator = orchestrator
35- hideFlag (cmd , orchestrator )
35+ hideOrchestrationFlags (cmd , orchestrator )
3636 return checkSupportedFlag (cmd , orchestrator )
3737 },
3838
@@ -43,13 +43,7 @@ func NewStackCommand(dockerCli command.Cli) *cobra.Command {
4343 }
4444 defaultHelpFunc := cmd .HelpFunc ()
4545 cmd .SetHelpFunc (func (cmd * cobra.Command , args []string ) {
46- config := cliconfig .LoadDefaultConfigFile (dockerCli .Err ()) // dockerCli is not yet initialized, but we only need config file here
47- o , err := getOrchestrator (config , cmd )
48- if err != nil {
49- fmt .Fprint (dockerCli .Err (), err )
50- return
51- }
52- hideFlag (cmd , o )
46+ hideOrchestrationFlags (cmd , opts .orchestrator )
5347 defaultHelpFunc (cmd , args )
5448 })
5549 cmd .AddCommand (
@@ -78,15 +72,15 @@ func NewTopLevelDeployCommand(dockerCli command.Cli) *cobra.Command {
7872 return cmd
7973}
8074
81- func getOrchestrator (config * configfile.ConfigFile , cmd * cobra.Command ) (command.Orchestrator , error ) {
75+ func getOrchestrator (config * configfile.ConfigFile , cmd * cobra.Command , stderr io. Writer ) (command.Orchestrator , error ) {
8276 var orchestratorFlag string
8377 if o , err := cmd .Flags ().GetString ("orchestrator" ); err == nil {
8478 orchestratorFlag = o
8579 }
86- return command .GetStackOrchestrator (orchestratorFlag , config .StackOrchestrator )
80+ return command .GetStackOrchestrator (orchestratorFlag , config .StackOrchestrator , stderr )
8781}
8882
89- func hideFlag (cmd * cobra.Command , orchestrator command.Orchestrator ) {
83+ func hideOrchestrationFlags (cmd * cobra.Command , orchestrator command.Orchestrator ) {
9084 cmd .Flags ().VisitAll (func (f * pflag.Flag ) {
9185 if _ , ok := f .Annotations ["kubernetes" ]; ok && ! orchestrator .HasKubernetes () {
9286 f .Hidden = true
@@ -96,7 +90,7 @@ func hideFlag(cmd *cobra.Command, orchestrator command.Orchestrator) {
9690 }
9791 })
9892 for _ , subcmd := range cmd .Commands () {
99- hideFlag (subcmd , orchestrator )
93+ hideOrchestrationFlags (subcmd , orchestrator )
10094 }
10195}
10296
0 commit comments