Skip to content

Commit 66ec714

Browse files
committed
cli/command/container: add completion for --stop-signal
With this patch: docker run --stop-signal <TAB> ABRT IOT RTMAX-4 RTMIN RTMIN+11 TSTP ALRM KILL RTMAX-5 RTMIN+1 RTMIN+12 TTIN BUS PIPE RTMAX-6 RTMIN+2 RTMIN+13 TTOU CHLD POLL RTMAX-7 RTMIN+3 RTMIN+14 URG CLD PROF RTMAX-8 RTMIN+4 RTMIN+15 USR1 CONT PWR RTMAX-9 RTMIN+5 SEGV USR2 FPE QUIT RTMAX-10 RTMIN+6 STKFLT VTALRM HUP RTMAX RTMAX-11 RTMIN+7 STOP WINCH ILL RTMAX-1 RTMAX-12 RTMIN+8 SYS XCPU INT RTMAX-2 RTMAX-13 RTMIN+9 TERM XFSZ IO RTMAX-3 RTMAX-14 RTMIN+10 TRAP Signed-off-by: Sebastiaan van Stijn <[email protected]> (cherry picked from commit b1c0ddc) Signed-off-by: Sebastiaan van Stijn <[email protected]>
1 parent ab8a2c0 commit 66ec714

File tree

6 files changed

+22
-1
lines changed

6 files changed

+22
-1
lines changed

cli/command/container/completion.go

+10
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package container
33
import (
44
"github.com/docker/cli/cli/command/completion"
55
"github.com/docker/docker/api/types/container"
6+
"github.com/moby/sys/signal"
67
"github.com/spf13/cobra"
78
)
89

@@ -82,3 +83,12 @@ func completeLinuxCapabilityNames(cmd *cobra.Command, args []string, toComplete
8283
func completeRestartPolicies(cmd *cobra.Command, args []string, toComplete string) (names []string, _ cobra.ShellCompDirective) {
8384
return completion.FromList(restartPolicies...)(cmd, args, toComplete)
8485
}
86+
87+
func completeSignals(cmd *cobra.Command, args []string, toComplete string) (names []string, _ cobra.ShellCompDirective) {
88+
// TODO(thaJeztah): do we want to provide the full list here, or a subset?
89+
signalNames := make([]string, 0, len(signal.SignalMap))
90+
for k := range signal.SignalMap {
91+
signalNames = append(signalNames, k)
92+
}
93+
return completion.FromList(signalNames...)(cmd, args, toComplete)
94+
}

cli/command/container/create.go

+1
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ func NewCreateCommand(dockerCli command.Cli) *cobra.Command {
8585
_ = cmd.RegisterFlagCompletionFunc("network", completion.NetworkNames(dockerCli))
8686
_ = cmd.RegisterFlagCompletionFunc("pull", completion.FromList(PullImageAlways, PullImageMissing, PullImageNever))
8787
_ = cmd.RegisterFlagCompletionFunc("restart", completeRestartPolicies)
88+
_ = cmd.RegisterFlagCompletionFunc("stop-signal", completeSignals)
8889
_ = cmd.RegisterFlagCompletionFunc("volumes-from", completion.ContainerNames(dockerCli, true))
8990
return cmd
9091
}

cli/command/container/kill.go

+4-1
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@ func NewKillCommand(dockerCli command.Cli) *cobra.Command {
3838

3939
flags := cmd.Flags()
4040
flags.StringVarP(&opts.signal, "signal", "s", "", "Signal to send to the container")
41+
42+
_ = cmd.RegisterFlagCompletionFunc("signal", completeSignals)
43+
4144
return cmd
4245
}
4346

@@ -50,7 +53,7 @@ func runKill(ctx context.Context, dockerCli command.Cli, opts *killOptions) erro
5053
if err := <-errChan; err != nil {
5154
errs = append(errs, err.Error())
5255
} else {
53-
fmt.Fprintln(dockerCli.Out(), name)
56+
_, _ = fmt.Fprintln(dockerCli.Out(), name)
5457
}
5558
}
5659
if len(errs) > 0 {

cli/command/container/restart.go

+3
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,9 @@ func NewRestartCommand(dockerCli command.Cli) *cobra.Command {
4343
flags := cmd.Flags()
4444
flags.StringVarP(&opts.signal, "signal", "s", "", "Signal to send to the container")
4545
flags.IntVarP(&opts.timeout, "time", "t", 0, "Seconds to wait before killing the container")
46+
47+
_ = cmd.RegisterFlagCompletionFunc("signal", completeSignals)
48+
4649
return cmd
4750
}
4851

cli/command/container/run.go

+1
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ func NewRunCommand(dockerCli command.Cli) *cobra.Command {
7676
_ = cmd.RegisterFlagCompletionFunc("network", completion.NetworkNames(dockerCli))
7777
_ = cmd.RegisterFlagCompletionFunc("pull", completion.FromList(PullImageAlways, PullImageMissing, PullImageNever))
7878
_ = cmd.RegisterFlagCompletionFunc("restart", completeRestartPolicies)
79+
_ = cmd.RegisterFlagCompletionFunc("stop-signal", completeSignals)
7980
_ = cmd.RegisterFlagCompletionFunc("volumes-from", completion.ContainerNames(dockerCli, true))
8081
return cmd
8182
}

cli/command/container/stop.go

+3
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,9 @@ func NewStopCommand(dockerCli command.Cli) *cobra.Command {
4343
flags := cmd.Flags()
4444
flags.StringVarP(&opts.signal, "signal", "s", "", "Signal to send to the container")
4545
flags.IntVarP(&opts.timeout, "time", "t", 0, "Seconds to wait before killing the container")
46+
47+
_ = cmd.RegisterFlagCompletionFunc("signal", completeSignals)
48+
4649
return cmd
4750
}
4851

0 commit comments

Comments
 (0)