func usage(commandGroups []common.CommandGroup) { if len(os.Args) > 2 { matcher := strings.ToLower(os.Args[2]) for _, commandGroup := range commandGroups { if strings.HasPrefix(strings.ToLower(commandGroup.Name), matcher) { usageForCommandGroup(commandGroup, true) return } for _, command := range commandGroup.Commands { if strings.HasPrefix(strings.ToLower(command.Name), matcher) { usageForCommand(0, command, true) return } } } say.Fprintln(os.Stderr, 0, say.Red("Unkown command: %s", os.Args[2])) } say.Fprintln(os.Stderr, 0, "%s", say.Cyan("Help and Autocompletion")) say.Fprintln(os.Stderr, 0, strings.Repeat("-", len("Help and Autocompletion"))) say.Fprintln(os.Stderr, 1, "%s %s", say.Green("help"), say.LightGray("[command] - Show this help, or detailed help for the passed in command")) say.Fprintln(os.Stderr, 1, "%s %s", say.Green("completions"), say.LightGray("Generate BASH Completions for veritas")) say.Fprintln(os.Stderr, 0, "") for _, commandGroup := range commandGroups { usageForCommandGroup(commandGroup, false) say.Println(0, "") } }
func usageForCommandGroup(commandGroup common.CommandGroup, includeFlags bool) { say.Fprintln(os.Stderr, 0, "%s - %s", say.Cyan(commandGroup.Name), say.LightGray(commandGroup.Description)) say.Fprintln(os.Stderr, 0, strings.Repeat("-", len(commandGroup.Name)+3+len(commandGroup.Description))) for _, command := range commandGroup.Commands { usageForCommand(1, command, includeFlags) } }
func usage(commands []Command) { say.FprintBanner(os.Stderr, "Probe", "=") for _, command := range commands { say.Fprintln(os.Stderr, 0, "%s %s", say.Green(command.Name), say.LightGray(command.Description)) command.FlagSet.PrintDefaults() say.Fprintln(os.Stderr, 0, "") } }
func usageForCommand(indentation int, command common.Command, includeFlags bool) { say.Fprintln(os.Stderr, indentation, "%s %s", say.Green(command.Name), say.LightGray(command.Description)) if includeFlags { buffer := &bytes.Buffer{} command.FlagSet.SetOutput(buffer) command.FlagSet.PrintDefaults() say.Fprintln(os.Stderr, indentation, buffer.String()) } }
func taskState(task *models.Task) string { switch task.State { case models.Task_Pending: return say.LightGray("PENDING ") case models.Task_Running: return say.Yellow("RUNNING ") case models.Task_Completed: return colorByTaskSuccess(task, "COMPLETED") case models.Task_Resolving: return colorByTaskSuccess(task, "RESOLVING") default: return say.Red("INVALID") } }
func actualState(actual *models.ActualLRP) string { switch actual.State { case models.ActualLRPStateUnclaimed: if actual.PlacementError == "" { return say.LightGray("UNCLAIMED") } else { return say.Red("UNCLAIMED (%s)", actual.PlacementError) } case models.ActualLRPStateClaimed: return say.Yellow("CLAIMED") case models.ActualLRPStateRunning: return say.Green("RUNNING") case models.ActualLRPStateCrashed: return say.Red("CRASHED (%d - %s)", actual.CrashCount, strings.Replace(actual.CrashReason, "\n", " ", -1)) default: return say.Red("INVALID") } }