Skip to content

Commit d2e204a

Browse files
committed
Add --work-dir to exec
1 parent bb570fa commit d2e204a

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

cmd/devcontainer/devcontainer.go

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,10 @@ func createExecCommand() *cobra.Command {
8080
var argDevcontainerName string
8181
var argDevcontainerPath string
8282
var argPromptForDevcontainer bool
83+
var argWorkDir string
8384

8485
cmd := &cobra.Command{
85-
Use: "exec [--name <name>| --path <path> | --prompt ] [<command> [<args...>]] (command will default to /bin/bash if none provided)",
86+
Use: "exec [--name <name>| --path <path> | --prompt ] [--work-dir <work-dir>] [<command> [<args...>]] (command will default to /bin/bash if none provided)",
8687
Short: "Execute a command in a devcontainer",
8788
Long: "Execute a command in a devcontainer, similar to `docker exec`",
8889
RunE: func(cmd *cobra.Command, args []string) error {
@@ -164,9 +165,12 @@ func createExecCommand() *cobra.Command {
164165
return err
165166
}
166167

167-
mountPath, err := devcontainers.GetWorkspaceMountPath(localPath)
168-
if err != nil {
169-
return err
168+
mountPath := argWorkDir
169+
if mountPath == "" {
170+
mountPath, err = devcontainers.GetWorkspaceMountPath(localPath)
171+
if err != nil {
172+
return err
173+
}
170174
}
171175

172176
wslPath := localPath
@@ -204,8 +208,7 @@ func createExecCommand() *cobra.Command {
204208
}
205209
return nil
206210
},
207-
Args: cobra.ArbitraryArgs,
208-
// DisableFlagParsing: true,
211+
Args: cobra.ArbitraryArgs,
209212
DisableFlagsInUseLine: true,
210213
ValidArgsFunction: func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
211214
// only completing the first arg (devcontainer name)
@@ -227,5 +230,6 @@ func createExecCommand() *cobra.Command {
227230
cmd.Flags().StringVarP(&argDevcontainerName, "name", "n", "", "name of dev container to exec into")
228231
cmd.Flags().StringVarP(&argDevcontainerPath, "path", "", "", "path containing the dev container to exec into")
229232
cmd.Flags().BoolVarP(&argPromptForDevcontainer, "prompt", "", false, "prompt for the dev container to exec into")
233+
cmd.Flags().StringVarP(&argWorkDir, "work-dir", "", "", "working directory to use in the dev container")
230234
return cmd
231235
}

0 commit comments

Comments
 (0)