summaryrefslogtreecommitdiff
path: root/cmd.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd.go')
-rw-r--r--cmd.go87
1 files changed, 0 insertions, 87 deletions
diff --git a/cmd.go b/cmd.go
deleted file mode 100644
index a9024b2..0000000
--- a/cmd.go
+++ /dev/null
@@ -1,87 +0,0 @@
-package complete
-
-import (
- "errors"
- "flag"
- "fmt"
- "os"
- "strings"
-
- "github.com/posener/complete/install"
-)
-
-func runCommandLine(cmd string) {
- c := parseFlags(cmd)
- err := c.validate()
- if err != nil {
- os.Stderr.WriteString(err.Error() + "\n")
- os.Exit(1)
- }
- if !c.yes && !prompt(c.action(), cmd) {
- fmt.Println("Cancelling...")
- os.Exit(2)
- }
- fmt.Println(c.action() + "ing...")
- if c.install {
- err = install.Install(cmd, c.root)
- } else {
- err = install.Uninstall(cmd, c.root)
- }
- if err != nil {
- fmt.Printf("%s failed! %s\n", c.action(), err)
- os.Exit(3)
- }
- fmt.Println("Done!")
-}
-
-func prompt(action, cmd string) bool {
- fmt.Printf("%s bash completion for %s? ", action, cmd)
- var answer string
- fmt.Scanln(&answer)
-
- switch strings.ToLower(answer) {
- case "y", "yes":
- return true
- default:
- return false
- }
-}
-
-type config struct {
- install bool
- uninstall bool
- root bool
- yes bool
-}
-
-func parseFlags(cmd string) config {
- var c config
- flag.BoolVar(&c.install, "install", false,
- fmt.Sprintf("Install bash completion for %s command", cmd))
- flag.BoolVar(&c.uninstall, "uninstall", false,
- fmt.Sprintf("Uninstall bash completion for %s command", cmd))
- flag.BoolVar(&c.root, "root", false,
- "(Un)Install as root:\n"+
- " (Un)Install at /etc/bash_completion.d/ (user should have write permissions to that directory).\n"+
- " If not set, a complete command will be added(removed) to ~/.bashrc")
- flag.BoolVar(&c.yes, "y", false, "Don't prompt user for typing 'yes'")
- flag.Parse()
- return c
-}
-
-func (c config) validate() error {
- if c.install && c.uninstall {
- return errors.New("Install and uninstall are exclusive")
- }
- if !c.install && !c.uninstall {
- return errors.New("Must specify -install or -uninstall")
- }
- return nil
-}
-
-func (c config) action() string {
- if c.install {
- return "Install"
- }
- return "Uninstall"
-}