1package install
2
3import "fmt"
4
5// (un)install in bash
6// basically adds/remove from .bashrc:
7//
8// complete -C </path/to/completion/command> <command>
9type bash struct {
10	rc string
11}
12
13func (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
21func (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
30func (bash) cmd(cmd, bin string) string {
31	return fmt.Sprintf("complete -C %s %s", bin, cmd)
32}
33