in main.go [183:281]
func executeTools(args []string, opsHome string) int {
trace("TOOL:", args)
cmd := args[0]
switch cmd {
case "", "task":
args = args[1:]
exitCode, err := Task(args...)
if err != nil {
log.Println(err)
}
return exitCode
case "i", "info":
info()
return 0
case "u", "update":
// ok no up, nor down, let's download it
dir, err := pullTasks(true, true)
if err != nil {
log.Fatalf("error: %v", err)
}
if err := setOpsOlarisHash(dir); err != nil {
log.Fatal("unable to set OPS_OLARIS...", err.Error())
}
return 0
case "l", "login":
args[0] = "-login"
os.Args = args
loginResult, err := auth.LoginCmd()
if err != nil {
log.Fatalf("error: %s", err.Error())
}
if loginResult == nil {
return 1
}
fmt.Println("Successfully logged in as " + loginResult.Login + ".")
if err := wskPropertySet(loginResult.ApiHost, loginResult.Auth); err != nil {
log.Fatalf("error: %s", err.Error())
}
fmt.Println("OpenServerless host and auth set successfully. You are now ready to use ops!")
return 0
case "c", "config":
args[0] = "-config"
os.Args = args
opsRootPath := joinpath(getRootDirOrExit(), OPSROOT)
configPath := joinpath(opsHome, CONFIGFILE)
configMap, err := buildConfigMap(opsRootPath, configPath)
if err != nil {
log.Fatalf("error: %s", err.Error())
}
if err := config.ConfigTool(*configMap); err != nil {
log.Fatalf("error: %s", err.Error())
}
return 0
case "retry":
args[0] = "-retry"
if err := tools.ExpBackoffRetry(args); err != nil {
log.Fatalf("error: %s", err.Error())
}
return 0
case "plugin":
args[0] = "-plugin"
os.Args = args
if err := pluginTool(); err != nil {
log.Fatalf("error: %s", err.Error())
}
return 0
case "serve":
args[0] = "-serve"
opsRootDir := getRootDirOrExit()
if err := Serve(opsRootDir, args); err != nil {
log.Fatalf("error: %v", err)
}
return 0
default:
// check if it is an embedded to and invoke it
if tools.IsTool(cmd) {
code, err := tools.RunTool(cmd, args[1:])
if err != nil {
log.Print(err.Error())
}
return code
}
// no embeded tool found
warn("unknown tool", "-"+cmd)
return 1
}
//return 0 // unreachable - or it should be!
}