diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2018-10-02 17:16:43 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-10-02 17:16:43 -0700 |
commit | d5687946f6a0aa14a5326f26ca0ceca68588056f (patch) | |
tree | 888c74c05f061cda2f53829969634e31a0d41643 /cmd/podman/shared/funcs.go | |
parent | b63b1f9cb638db4bc3fdf69a50857b6d04efb6d7 (diff) | |
parent | 4f825f2e079c1cf3ec6c9fd2c5378ce2db18d4f0 (diff) | |
download | podman-d5687946f6a0aa14a5326f26ca0ceca68588056f.tar.gz podman-d5687946f6a0aa14a5326f26ca0ceca68588056f.tar.bz2 podman-d5687946f6a0aa14a5326f26ca0ceca68588056f.zip |
Merge pull request #1528 from baude/runlabel
Add container runlabel command
Diffstat (limited to 'cmd/podman/shared/funcs.go')
-rw-r--r-- | cmd/podman/shared/funcs.go | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/cmd/podman/shared/funcs.go b/cmd/podman/shared/funcs.go new file mode 100644 index 000000000..5c401634c --- /dev/null +++ b/cmd/podman/shared/funcs.go @@ -0,0 +1,57 @@ +package shared + +import ( + "fmt" + "os" + "strings" +) + +// GenerateCommand takes a label (string) and converts it to an executable command +func GenerateCommand(command, imageName, name string) []string { + var ( + newCommand []string + ) + if name == "" { + name = imageName + } + cmd := strings.Split(command, " ") + // Replace the first position of cmd with podman whether + // it is docker, /usr/bin/docker, or podman + newCommand = append(newCommand, "podman") + for _, arg := range cmd[1:] { + var newArg string + switch arg { + case "IMAGE": + newArg = imageName + case "IMAGE=IMAGE": + newArg = fmt.Sprintf("IMAGE=%s", imageName) + case "NAME": + newArg = name + case "NAME=NAME": + newArg = fmt.Sprintf("NAME=%s", name) + default: + newArg = arg + } + newCommand = append(newCommand, newArg) + } + return newCommand +} + +// GenerateRunEnvironment merges the current environment variables with optional +// environment variables provided by the user +func GenerateRunEnvironment(name, imageName string, opts map[string]string) []string { + newEnv := os.Environ() + newEnv = append(newEnv, fmt.Sprintf("NAME=%s", name)) + newEnv = append(newEnv, fmt.Sprintf("IMAGE=%s", imageName)) + + if opts["opt1"] != "" { + newEnv = append(newEnv, fmt.Sprintf("OPT1=%s", opts["opt1"])) + } + if opts["opt2"] != "" { + newEnv = append(newEnv, fmt.Sprintf("OPT2=%s", opts["opt2"])) + } + if opts["opt3"] != "" { + newEnv = append(newEnv, fmt.Sprintf("OPT3=%s", opts["opt3"])) + } + return newEnv +} |