@@ -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