@@ -16,7 +16,7 @@ import (
1616 "github.com/spf13/pflag"
1717)
1818
19- func newCreateCommand (dockerCli command.Cli ) * cobra.Command {
19+ func newCreateCommand (dockerCLI command.Cli ) * cobra.Command {
2020 opts := newServiceOptions ()
2121
2222 cmd := & cobra.Command {
@@ -28,7 +28,7 @@ func newCreateCommand(dockerCli command.Cli) *cobra.Command {
2828 if len (args ) > 1 {
2929 opts .args = args [1 :]
3030 }
31- return runCreate (cmd .Context (), dockerCli , cmd .Flags (), opts )
31+ return runCreate (cmd .Context (), dockerCLI , cmd .Flags (), opts )
3232 },
3333 ValidArgsFunction : completion .NoComplete ,
3434 }
@@ -75,6 +75,28 @@ func newCreateCommand(dockerCli command.Cli) *cobra.Command {
7575 flags .SetAnnotation (flagHostAdd , "version" , []string {"1.32" })
7676
7777 flags .SetInterspersed (false )
78+
79+ // TODO(thaJeztah): add completion for capabilities, stop-signal (currently non-exported in container package)
80+ // _ = cmd.RegisterFlagCompletionFunc(flagCapAdd, completeLinuxCapabilityNames)
81+ // _ = cmd.RegisterFlagCompletionFunc(flagCapDrop, completeLinuxCapabilityNames)
82+ // _ = cmd.RegisterFlagCompletionFunc(flagStopSignal, completeSignals)
83+
84+ _ = cmd .RegisterFlagCompletionFunc (flagMode , completion .FromList ("replicated" , "global" , "replicated-job" , "global-job" ))
85+ _ = cmd .RegisterFlagCompletionFunc (flagEnv , completion .EnvVarNames ) // TODO(thaJeztah): flagEnvRemove (needs to read current env-vars on the service)
86+ _ = cmd .RegisterFlagCompletionFunc (flagEnvFile , completion .FileNames )
87+ _ = cmd .RegisterFlagCompletionFunc (flagNetwork , completion .NetworkNames (dockerCLI ))
88+ _ = cmd .RegisterFlagCompletionFunc (flagRestartCondition , completion .FromList ("none" , "on-failure" , "any" ))
89+ _ = cmd .RegisterFlagCompletionFunc (flagRollbackOrder , completion .FromList ("start-first" , "stop-first" ))
90+ _ = cmd .RegisterFlagCompletionFunc (flagRollbackFailureAction , completion .FromList ("pause" , "continue" ))
91+ _ = cmd .RegisterFlagCompletionFunc (flagUpdateOrder , completion .FromList ("start-first" , "stop-first" ))
92+ _ = cmd .RegisterFlagCompletionFunc (flagUpdateFailureAction , completion .FromList ("pause" , "continue" , "rollback" ))
93+
94+ flags .VisitAll (func (flag * pflag.Flag ) {
95+ // Set a default completion function if none was set. We don't look
96+ // up if it does already have one set, because Cobra does this for
97+ // us, and returns an error (which we ignore for this reason).
98+ _ = cmd .RegisterFlagCompletionFunc (flag .Name , completion .NoComplete )
99+ })
78100 return cmd
79101}
80102
0 commit comments