Add verbose flag (#1696)
Co-authored-by: anqiansong <anqiansong@bytedance.com>
This commit is contained in:
34
tools/goctl/env/check.go
vendored
34
tools/goctl/env/check.go
vendored
@@ -40,21 +40,23 @@ var bins = []bin{
|
||||
func Check(ctx *cli.Context) error {
|
||||
install := ctx.Bool("install")
|
||||
force := ctx.Bool("force")
|
||||
return Prepare(install, force)
|
||||
verbose := ctx.Bool("verbose")
|
||||
return Prepare(install, force, verbose)
|
||||
}
|
||||
|
||||
func Prepare(install, force bool) error {
|
||||
func Prepare(install, force, verbose bool) error {
|
||||
log := console.NewColorConsole(verbose)
|
||||
pending := true
|
||||
console.Info("[goctl-env]: preparing to check env")
|
||||
log.Info("[goctl-env]: preparing to check env")
|
||||
defer func() {
|
||||
if p := recover(); p != nil {
|
||||
console.Error("%+v", p)
|
||||
log.Error("%+v", p)
|
||||
return
|
||||
}
|
||||
if pending {
|
||||
console.Success("\n[goctl-env]: congratulations! your goctl environment is ready!")
|
||||
log.Success("\n[goctl-env]: congratulations! your goctl environment is ready!")
|
||||
} else {
|
||||
console.Error(`
|
||||
log.Error(`
|
||||
[goctl-env]: check env finish, some dependencies is not found in PATH, you can execute
|
||||
command 'goctl env check --install' to install it, for details, please execute command
|
||||
'goctl env check --help'`)
|
||||
@@ -62,29 +64,29 @@ command 'goctl env check --install' to install it, for details, please execute c
|
||||
}()
|
||||
for _, e := range bins {
|
||||
time.Sleep(200 * time.Millisecond)
|
||||
console.Info("")
|
||||
console.Info("[goctl-env]: looking up %q", e.name)
|
||||
log.Info("")
|
||||
log.Info("[goctl-env]: looking up %q", e.name)
|
||||
if e.exists {
|
||||
console.Success("[goctl-env]: %q is installed", e.name)
|
||||
log.Success("[goctl-env]: %q is installed", e.name)
|
||||
continue
|
||||
}
|
||||
console.Warning("[goctl-env]: %q is not found in PATH", e.name)
|
||||
log.Warning("[goctl-env]: %q is not found in PATH", e.name)
|
||||
if install {
|
||||
install := func() {
|
||||
console.Info("[goctl-env]: preparing to install %q", e.name)
|
||||
log.Info("[goctl-env]: preparing to install %q", e.name)
|
||||
path, err := e.get(env.Get(env.GoctlCache))
|
||||
if err != nil {
|
||||
console.Error("[goctl-env]: an error interrupted the installation: %+v", err)
|
||||
log.Error("[goctl-env]: an error interrupted the installation: %+v", err)
|
||||
pending = false
|
||||
} else {
|
||||
console.Success("[goctl-env]: %q is already installed in %q", e.name, path)
|
||||
log.Success("[goctl-env]: %q is already installed in %q", e.name, path)
|
||||
}
|
||||
}
|
||||
if force {
|
||||
install()
|
||||
continue
|
||||
}
|
||||
console.Info("[goctl-env]: do you want to install %q [y: YES, n: No]", e.name)
|
||||
log.Info("[goctl-env]: do you want to install %q [y: YES, n: No]", e.name)
|
||||
for {
|
||||
var in string
|
||||
fmt.Scanln(&in)
|
||||
@@ -95,10 +97,10 @@ command 'goctl env check --install' to install it, for details, please execute c
|
||||
brk = true
|
||||
case strings.EqualFold(in, "n"):
|
||||
pending = false
|
||||
console.Info("[goctl-env]: %q installation is ignored", e.name)
|
||||
log.Info("[goctl-env]: %q installation is ignored", e.name)
|
||||
brk = true
|
||||
default:
|
||||
console.Error("[goctl-env]: invalid input, input 'y' for yes, 'n' for no")
|
||||
log.Error("[goctl-env]: invalid input, input 'y' for yes, 'n' for no")
|
||||
}
|
||||
if brk {
|
||||
break
|
||||
|
||||
Reference in New Issue
Block a user