summaryrefslogtreecommitdiff
path: root/cmd/kpod/exec.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/kpod/exec.go')
-rw-r--r--cmd/kpod/exec.go86
1 files changed, 0 insertions, 86 deletions
diff --git a/cmd/kpod/exec.go b/cmd/kpod/exec.go
deleted file mode 100644
index f76983810..000000000
--- a/cmd/kpod/exec.go
+++ /dev/null
@@ -1,86 +0,0 @@
-package main
-
-import (
- "fmt"
- "strings"
-
- "github.com/pkg/errors"
- "github.com/projectatomic/libpod/libpod"
- "github.com/urfave/cli"
-)
-
-var (
- execFlags = []cli.Flag{
- cli.StringSliceFlag{
- Name: "env, e",
- Usage: "Set environment variables",
- },
- cli.BoolFlag{
- Name: "privileged",
- Usage: "Give the process extended Linux capabilities inside the container. The default is false",
- },
- cli.BoolFlag{
- Name: "tty, t",
- Usage: "Allocate a pseudo-TTY. The default is false",
- },
- cli.StringFlag{
- Name: "user, u",
- Usage: "Sets the username or UID used and optionally the groupname or GID for the specified command",
- },
- }
- execDescription = `
- kpod exec
-
- Run a command in a running container
-`
-
- execCommand = cli.Command{
- Name: "exec",
- Usage: "Run a process in a running container",
- Description: execDescription,
- Flags: execFlags,
- Action: execCmd,
- ArgsUsage: "CONTAINER-NAME",
- }
-)
-
-func execCmd(c *cli.Context) error {
- var envs []string
- args := c.Args()
- if len(args) < 1 {
- return errors.Errorf("you must provide one container name or id")
- }
- if len(args) < 2 {
- return errors.Errorf("you must provide a command to exec")
- }
- cmd := args[1:]
- runtime, err := getRuntime(c)
- if err != nil {
- return errors.Wrapf(err, "error creating libpod runtime")
- }
- defer runtime.Shutdown(false)
-
- ctr, err := runtime.LookupContainer(args[0])
- if err != nil {
- return errors.Wrapf(err, "unable to exec into %s", args[0])
- }
- // Create a list of keys provided by the user
- var userEnvKeys []string
- for _, env := range c.StringSlice("env") {
- splitEnv := strings.Split(env, "=")
- userEnvKeys = append(userEnvKeys, splitEnv[0])
- }
-
- envs = append(envs, c.StringSlice("env")...)
-
- // if the default key isnt in the user-provided list, add the default
- // key and value to the environment variables. this is needed to set
- // PATH for example.
- for k, v := range defaultEnvVariables {
- if !libpod.StringInSlice(k, userEnvKeys) {
- envs = append(envs, fmt.Sprintf("%s=%s", k, v))
- }
- }
-
- return ctr.Exec(c.Bool("tty"), c.Bool("privileged"), envs, cmd, c.String("user"))
-}