diff options
| author | Eyal Posener <[email protected]> | 2017-05-06 22:06:49 +0300 |
|---|---|---|
| committer | Eyal Posener <[email protected]> | 2017-05-06 22:15:15 +0300 |
| commit | 703dd6ebc30f7c6f5a5c02e07a307e0e34d9c2c2 (patch) | |
| tree | 6efd5f6d1205eb6188193c86f5dd1e256b8996c5 /cmd.go | |
| parent | 9963a854946be0603f9e79ccba0a8b2688b20053 (diff) | |
improve docs
Diffstat (limited to 'cmd.go')
| -rw-r--r-- | cmd.go | 87 |
1 files changed, 0 insertions, 87 deletions
@@ -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" -} |
