package cli import ( "flag" "fmt" "io" "os" "strings" ) type RoutesClearDeps struct { Clear func() (ok bool, message string) Stdout io.Writer Stderr io.Writer } func RunRoutesClear(args []string, deps RoutesClearDeps) int { if deps.Clear == nil { return 1 } stdout := deps.Stdout if stdout == nil { stdout = os.Stdout } stderr := deps.Stderr if stderr == nil { stderr = os.Stderr } fs := flag.NewFlagSet("routes-clear", flag.ContinueOnError) fs.SetOutput(stderr) if err := fs.Parse(args); err != nil { return 2 } ok, message := deps.Clear() if ok { fmt.Fprintln(stdout, strings.TrimSpace(message)) return 0 } msg := strings.TrimSpace(message) if msg == "" { msg = "routes clear failed" } fmt.Fprintln(stderr, msg) return 1 }