diff options
Diffstat (limited to 'vendor/github.com/posener/complete/cmd/install/bash.go')
-rw-r--r-- | vendor/github.com/posener/complete/cmd/install/bash.go | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/vendor/github.com/posener/complete/cmd/install/bash.go b/vendor/github.com/posener/complete/cmd/install/bash.go new file mode 100644 index 0000000..a287f99 --- /dev/null +++ b/vendor/github.com/posener/complete/cmd/install/bash.go | |||
@@ -0,0 +1,32 @@ | |||
1 | package install | ||
2 | |||
3 | import "fmt" | ||
4 | |||
5 | // (un)install in bash | ||
6 | // basically adds/remove from .bashrc: | ||
7 | // | ||
8 | // complete -C </path/to/completion/command> <command> | ||
9 | type bash struct { | ||
10 | rc string | ||
11 | } | ||
12 | |||
13 | func (b bash) Install(cmd, bin string) error { | ||
14 | completeCmd := b.cmd(cmd, bin) | ||
15 | if lineInFile(b.rc, completeCmd) { | ||
16 | return fmt.Errorf("already installed in %s", b.rc) | ||
17 | } | ||
18 | return appendToFile(b.rc, completeCmd) | ||
19 | } | ||
20 | |||
21 | func (b bash) Uninstall(cmd, bin string) error { | ||
22 | completeCmd := b.cmd(cmd, bin) | ||
23 | if !lineInFile(b.rc, completeCmd) { | ||
24 | return fmt.Errorf("does not installed in %s", b.rc) | ||
25 | } | ||
26 | |||
27 | return removeFromFile(b.rc, completeCmd) | ||
28 | } | ||
29 | |||
30 | func (bash) cmd(cmd, bin string) string { | ||
31 | return fmt.Sprintf("complete -C %s %s", bin, cmd) | ||
32 | } | ||