github.com/jfrog/jfrog-cli-go@v1.22.1-0.20200318093948-4826ef344ffd/bintray/commands/config.go (about) 1 package commands 2 3 import ( 4 "github.com/jfrog/jfrog-cli-go/utils/config" 5 "github.com/jfrog/jfrog-cli-go/utils/ioutils" 6 "github.com/jfrog/jfrog-cli-go/utils/lock" 7 "github.com/jfrog/jfrog-client-go/utils/errorutils" 8 "github.com/jfrog/jfrog-client-go/utils/log" 9 "golang.org/x/crypto/ssh/terminal" 10 "sync" 11 "syscall" 12 ) 13 14 // Internal golang locking for the same process. 15 var mutex sync.Mutex 16 17 func Config(details, defaultDetails *config.BintrayDetails, interactive bool) (*config.BintrayDetails, error) { 18 mutex.Lock() 19 lockFile, err := lock.CreateLock() 20 defer mutex.Unlock() 21 defer lockFile.Unlock() 22 23 if err != nil { 24 return nil, err 25 } 26 27 if details == nil { 28 details = new(config.BintrayDetails) 29 } 30 if interactive { 31 if defaultDetails == nil { 32 var err error 33 defaultDetails, err = config.ReadBintrayConf() 34 if err != nil { 35 return nil, err 36 } 37 } 38 if details.User == "" { 39 ioutils.ScanFromConsole("User", &details.User, defaultDetails.User) 40 } 41 if details.Key == "" { 42 print("Key: ") 43 byteKey, err := terminal.ReadPassword(int(syscall.Stdin)) 44 err = errorutils.CheckError(err) 45 if err != nil { 46 return nil, err 47 } 48 details.Key = string(byteKey) 49 if details.Key == "" { 50 details.Key = defaultDetails.Key 51 } 52 } 53 if details.DefPackageLicense == "" { 54 ioutils.ScanFromConsole("\nDefault package licenses", 55 &details.DefPackageLicense, defaultDetails.DefPackageLicense) 56 } 57 } 58 err = config.SaveBintrayConf(details) 59 return details, err 60 } 61 62 func ShowConfig() error { 63 details, err := config.ReadBintrayConf() 64 if err != nil { 65 return err 66 } 67 if details.User != "" { 68 log.Output("User: " + details.User) 69 } 70 if details.Key != "" { 71 log.Output("Key: ***") 72 } 73 if details.DefPackageLicense != "" { 74 log.Output("Default package license: " + details.DefPackageLicense) 75 } 76 return nil 77 } 78 79 func ClearConfig() { 80 config.SaveBintrayConf(new(config.BintrayDetails)) 81 } 82 83 func GetConfig() (*config.BintrayDetails, error) { 84 return config.ReadBintrayConf() 85 }