github.com/jfrog/jfrog-cli-go@v1.22.1-0.20200318093948-4826ef344ffd/completion/shells/generate_scripts.go (about) 1 // +build ignore 2 3 // This program generates bash and zsh completion scripts. 4 // It can be invoked by running 'go generate ./completion/shells/...' 5 package main 6 7 import ( 8 "errors" 9 "os" 10 "strings" 11 12 "github.com/jfrog/jfrog-cli-go/completion/shells/bash" 13 "github.com/jfrog/jfrog-cli-go/completion/shells/zsh" 14 "github.com/jfrog/jfrog-cli-go/utils/cliutils" 15 "github.com/jfrog/jfrog-cli-go/utils/log" 16 ) 17 18 func main() { 19 log.SetDefaultLogger() 20 dir, err := os.Getwd() 21 cliutils.ExitOnErr(err) 22 if strings.HasSuffix(dir, "bash") { 23 writeScript(bash.BashAutocomplete) 24 } else if strings.HasSuffix(dir, "zsh") { 25 writeScript(zsh.ZshAutocomplete) 26 } else { 27 cliutils.ExitOnErr(errors.New("Unexpected script to create")) 28 } 29 } 30 31 func writeScript(script string) { 32 scriptFile, err := os.Create("jfrog") 33 cliutils.ExitOnErr(err) 34 defer scriptFile.Close() 35 err = os.Chmod("jfrog", os.ModePerm) 36 cliutils.ExitOnErr(err) 37 _, err = scriptFile.WriteString(script) 38 cliutils.ExitOnErr(err) 39 }