Skip to content

Commit

Permalink
fix zsh completion not working with source
Browse files Browse the repository at this point in the history
README.md: add shell completion installation instructions

Signed-off-by: Adphi <philippe.adrien.nousse@gmail.com>
  • Loading branch information
Adphi committed Sep 12, 2022
1 parent 7f3b3a8 commit f1557d1
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 0 deletions.
17 changes: 17 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,23 @@ which d2vm
/go/bin/d2vm
```

### Generate shell completion

The *d2vm* program supports shell completion for *bash*, *zsh* and *fish*.

It can be enabled by running the following command:

```bash
source <(d2vm completion $(basename $SHELL))
```

Or you can install the completion file in the shell completion directory by following the instructions:

```bash
d2vm completion $(basename $SHELL) --help
```


### Converting an existing Docker Image to VM image:

```bash
Expand Down
6 changes: 6 additions & 0 deletions cmd/d2vm/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,12 @@ var (
logrus.SetLevel(logrus.TraceLevel)
}
exec.SetDebug(verbose)

// make the zsh completion work when sourced with `source <(d2vm completion zsh)`
if cmd.Name() == "zsh" && cmd.Parent() != nil && cmd.Parent().Name() == "completion" {
zshHead := fmt.Sprintf("#compdef %[1]s\ncompdef _%[1]s %[1]s\n", cmd.Root().Name())
cmd.OutOrStdout().Write([]byte(zshHead))
}
},
}
)
Expand Down

0 comments on commit f1557d1

Please sign in to comment.