forked from moby/swarmkit
-
Notifications
You must be signed in to change notification settings - Fork 0
/
container.go
68 lines (57 loc) · 1.24 KB
/
container.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package flagparser
import (
"github.com/docker/swarmkit/api"
"github.com/spf13/pflag"
)
func parseContainer(flags *pflag.FlagSet, spec *api.ServiceSpec) error {
if flags.Changed("image") {
image, err := flags.GetString("image")
if err != nil {
return err
}
spec.Task.GetContainer().Image = image
}
if flags.Changed("hostname") {
hostname, err := flags.GetString("hostname")
if err != nil {
return err
}
spec.Task.GetContainer().Hostname = hostname
}
if flags.Changed("command") {
command, err := flags.GetStringSlice("command")
if err != nil {
return err
}
spec.Task.GetContainer().Command = command
}
if flags.Changed("args") {
args, err := flags.GetStringSlice("args")
if err != nil {
return err
}
spec.Task.GetContainer().Args = args
}
if flags.Changed("env") {
env, err := flags.GetStringSlice("env")
if err != nil {
return err
}
spec.Task.GetContainer().Env = env
}
if flags.Changed("tty") {
tty, err := flags.GetBool("tty")
if err != nil {
return err
}
spec.Task.GetContainer().TTY = tty
}
if flags.Changed("open-stdin") {
openStdin, err := flags.GetBool("open-stdin")
if err != nil {
return err
}
spec.Task.GetContainer().OpenStdin = openStdin
}
return nil
}