diff options
Diffstat (limited to 'install/root.go')
| -rw-r--r-- | install/root.go | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/install/root.go b/install/root.go new file mode 100644 index 0000000..b128a0d --- /dev/null +++ b/install/root.go @@ -0,0 +1,30 @@ +package install + +import "os" + +type root struct{} + +func (r root) Install(cmd string, bin string) error { + completeLink := getBashCompletionDLink(cmd) + err := r.Uninstall(cmd, bin) + if err != nil { + return err + } + return os.Symlink(bin, completeLink) +} + +func (root) Uninstall(cmd string, bin string) error { + completeLink := getBashCompletionDLink(cmd) + if _, err := os.Stat(completeLink); err == nil { + err := os.Remove(completeLink) + if err != nil { + return err + } + } + return nil +} + +func getBashCompletionDLink(cmd string) string { + return "/etc/bash_completion.d/"+cmd +} + |
