Files
elmprodvpn/selective-vpn-api/app/cli/routes_clear.go

48 lines
773 B
Go

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
}