10BC0 Use current context by default on set subcommands · docker/cli@458c27f · GitHub
[go: up one dir, main page]

Skip to content

Commit 458c27f

Browse files
committed
Use current context by default on set subcommands
Signed-off-by: Simon Ferquel <simon.ferquel@docker.com>
1 parent 41576e2 commit 458c27f

File tree

4 files changed

+37
-12
lines changed

4 files changed

+37
-12
lines changed

cli/command/context/set.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package context
22

33
import (
4+
"errors"
45
"github.com/docker/cli/cli"
56
"github.com/docker/cli/cli/command"
67
"github.com/spf13/cobra"
@@ -21,3 +22,13 @@ func newSetCommand(dockerCli command.Cli) *cobra.Command {
2122
)
2223
return cmd
2324
}
25+
26+
func contextNameFromArgsOrCurrent(args []string, dockerCli command.Cli) (string, error) {
27+
if len(args) > 0 {
28+
return args[0], nil
29+
}
30+
if dockerCli.CurrentContext() == command.ContextDockerHost {
31+
return "", errors.New("no context in use, please specify the context to modify")
32+
}
33+
return dockerCli.CurrentContext(), nil
34+
}

cli/command/context/setdocker.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,14 @@ import (
1111
func newSetDockerEndpointCommand(dockerCli command.Cli) *cobra.Command {
1212
opts := &dockerEndpointOptions{}
1313
cmd := &cobra.Command{
14-
Use: "docker-endpoint [OPTIONS] CONTEXT",
14+
Use: "docker-endpoint [OPTIONS] [CONTEXT]",
1515
Short: "Reset the docker endpoint of a context",
16-
Args: cli.ExactArgs(1),
16+
Args: cli.RequiresMaxArgs(1),
1717
RunE: func(cmd *cobra.Command, args []string) error {
18-
name := args[0]
18+
name, err := contextNameFromArgsOrCurrent(args, dockerCli)
19+
if err != nil {
20+
return err
21+
}
1922
contextMetadata, err := dockerCli.ContextStore().GetContextMetadata(name)
2023
if err != nil {
2124
return err

cli/command/context/setkubernetes.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,14 @@ import (
1111
func newSetKubernetesEndpointCommand(dockerCli command.Cli) *cobra.Command {
1212
opts := &kubernetesEndpointOptions{}
1313
cmd := &cobra.Command{
14-
Use: "kubernetes-endpoint <context> [options]",
14+
Use: "kubernetes-endpoint [OPTIONS] [CONTEXT]",
1515
Short: "Reset the kubernetes endpoint of a context",
1616
Args: cli.ExactArgs(1),
1717
RunE: func(cmd *cobra.Command, args []string) error {
18-
name := args[0]
18+
name, err := contextNameFromArgsOrCurrent(args, dockerCli)
19+
if err != nil {
20+
return err
21+
}
1922
contextMetadata, err := dockerCli.ContextStore().GetContextMetadata(name)
2023
if err != nil {
2124
return err

cli/command/context/setoptions.go

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,19 @@ import (
88

99
func newSetStackOrchestratorCommand(dockerCli command.Cli) *cobra.Command {
1010
cmd := &cobra.Command{
11-
Use: "stack-orchestrator CONTEXT ORCHESTRATOR",
11+
Use: "stack-orchestrator [CONTEXT] ORCHESTRATOR",
1212
Short: "Set the default stack orchestrator of a context",
13-
Args: cli.ExactArgs(2),
13+
Args: cli.RequiresRangeArgs(1, 2),
1414
RunE: func(cmd *cobra.Command, args []string) error {
15-
orchestrator, err := command.NormalizeOrchestrator(args[1])
15+
name, err := contextNameFromArgsOrCurrent(args[:len(args)-1], dockerCli)
16+
if err != nil {
17+
return err
18+
}
19+
orchestrator, err := command.NormalizeOrchestrator(args[len(args)-1])
1620
if err != nil {
1721
return err
1822
}
19-
return setContextLevelOption(dockerCli, args[0], func(dc *command.DockerContext) {
23+
return setContextLevelOption(dockerCli, name, func(dc *command.DockerContext) {
2024
dc.StackOrchestrator = orchestrator
2125
})
2226
},
@@ -26,12 +30,16 @@ func newSetStackOrchestratorCommand(dockerCli command.Cli) *cobra.Command {
2630

2731
func newSetDescriptionCommand(dockerCli command.Cli) *cobra.Command {
2832
cmd := &cobra.Command{
29-
Use: "description CONTEXT DESCRIPTION",
33+
Use: "description [CONTEXT] DESCRIPTION",
3034
Short: "Set description of a context",
3135
Args: cli.ExactArgs(2),
3236
RunE: func(cmd *cobra.Command, args []string) error {
33-
return setContextLevelOption(dockerCli, args[0], func(dc *command.DockerContext) {
34-
dc.Description = args[1]
37+
name, err := contextNameFromArgsOrCurrent(args[:len(args)-1], dockerCli)
38+
if err != nil {
39+
return err
40+
}
41+
return setContextLevelOption(dockerCli, name, func(dc *command.DockerContext) {
42+
dc.Description = args[len(args)-1]
3543
})
3644
},
3745
}

0 commit comments

Comments
 (0)
0