|
|
|
@ -19,6 +19,7 @@ func Completion(c *cli.Context) error {
|
|
|
|
|
if goos == vars.OsWindows {
|
|
|
|
|
return fmt.Errorf("%q: only support unix-like OS", goos)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
name := c.String("name")
|
|
|
|
|
if len(name) == 0 {
|
|
|
|
|
name = defaultCompletionFilename
|
|
|
|
@ -31,6 +32,7 @@ func Completion(c *cli.Context) error {
|
|
|
|
|
if err != nil {
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
buffer := bytes.NewBuffer(nil)
|
|
|
|
|
zshF := filepath.Join(home, "zsh", defaultCompletionFilename)
|
|
|
|
|
err = pathx.MkdirIfNotExist(filepath.Dir(zshF))
|
|
|
|
@ -43,7 +45,8 @@ func Completion(c *cli.Context) error {
|
|
|
|
|
if err != nil {
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
var flag = magic
|
|
|
|
|
|
|
|
|
|
flag := magic
|
|
|
|
|
err = ioutil.WriteFile(zshF, zsh, os.ModePerm)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return err
|
|
|
|
@ -56,20 +59,21 @@ func Completion(c *cli.Context) error {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
flag |= flagBash
|
|
|
|
|
buffer.WriteString(aurora.Green("generation auto completion success!\n").String())
|
|
|
|
|
buffer.WriteString(aurora.Green("executes the following script to setting shell:\n").String())
|
|
|
|
|
buffer.WriteString(aurora.BrightGreen("generation auto completion success!\n").String())
|
|
|
|
|
buffer.WriteString(aurora.BrightGreen("executes the following script to setting shell:\n").String())
|
|
|
|
|
switch flag {
|
|
|
|
|
case magic | flagZsh:
|
|
|
|
|
buffer.WriteString(aurora.Blue(fmt.Sprintf("echo PROG=goctl source %s >> ~/.zshrc && source ~/.zshrc", zshF)).String())
|
|
|
|
|
buffer.WriteString(aurora.BrightCyan(fmt.Sprintf("echo PROG=goctl source %s >> ~/.zshrc && source ~/.zshrc", zshF)).String())
|
|
|
|
|
case magic | flagBash:
|
|
|
|
|
buffer.WriteString(aurora.Blue(fmt.Sprintf("echo PROG=goctl source %s >> ~/.bashrc && source ~/.bashrc", bashF)).String())
|
|
|
|
|
buffer.WriteString(aurora.BrightCyan(fmt.Sprintf("echo PROG=goctl source %s >> ~/.bashrc && source ~/.bashrc", bashF)).String())
|
|
|
|
|
case magic | flagZsh | flagBash:
|
|
|
|
|
buffer.WriteString(aurora.Blue(fmt.Sprintf(`echo PROG=goctl source %s >> ~/.zshrc && source ~/.zshrc
|
|
|
|
|
buffer.WriteString(aurora.BrightCyan(fmt.Sprintf(`echo PROG=goctl source %s >> ~/.zshrc && source ~/.zshrc
|
|
|
|
|
or
|
|
|
|
|
echo PROG=goctl source %s >> ~/.bashrc && source ~/.bashrc`, zshF, bashF)).String())
|
|
|
|
|
default:
|
|
|
|
|
return nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fmt.Println(buffer.String())
|
|
|
|
|
return nil
|
|
|
|
|
}
|
|
|
|
|