From 470478e574a4358d587ea8adad7918f11fa0f9dd Mon Sep 17 00:00:00 2001 From: Elias Naur Date: Sat, 24 Aug 2019 21:44:21 +0100 Subject: [PATCH] cmd/gio: replace errorf with a main function returning errors While we're here, split the usage print out to its own function and don't display the usage when a package is missing. Signed-off-by: Elias Naur --- cmd/gio/gio.go | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/cmd/gio/gio.go b/cmd/gio/gio.go index 1cb6b045..df2bd840 100644 --- a/cmd/gio/gio.go +++ b/cmd/gio/gio.go @@ -4,6 +4,7 @@ package main import ( "bytes" + "errors" "flag" "fmt" "image" @@ -45,40 +46,43 @@ type buildInfo struct { func main() { flag.Usage = func() { - fmt.Fprintf(os.Stderr, "Gio is a tool for building and packaging Gio (gioui.org) programs.\n\n") - fmt.Fprintf(os.Stderr, "Usage:\n\n\tgio [flags] \n\n") - flag.PrintDefaults() - os.Exit(2) + mainUsage(os.Stderr) } flag.Parse() + if err := mainErr(); err != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } + os.Exit(0) +} + +func mainErr() error { pkg := flag.Arg(0) if pkg == "" { - flag.Usage() + return errors.New("specify a package") } if *target == "" { - fmt.Fprintf(os.Stderr, "Please specify -target\n\n") - flag.PrintDefaults() - os.Exit(2) + return errors.New("please specify -target") } switch *target { case "ios", "tvos", "android", "js": default: - errorf("invalid -target %s\n", *target) + return fmt.Errorf("invalid -target %s\n", *target) } switch *buildMode { case "archive", "exe": default: - errorf("invalid -buildmode %s\n", *buildMode) + return fmt.Errorf("invalid -buildmode %s\n", *buildMode) } // Find package name. name, err := runCmd(exec.Command("go", "list", "-f", "{{.ImportPath}}", pkg)) if err != nil { - errorf("gio: %v", err) + return fmt.Errorf("gio: %v", err) } name = path.Base(name) dir, err := runCmd(exec.Command("go", "list", "-f", "{{.Dir}}", pkg)) if err != nil { - errorf("gio: %v", err) + return fmt.Errorf("gio: %v", err) } bi := &buildInfo{ name: name, @@ -105,8 +109,9 @@ func main() { bi.ldflags = fmt.Sprintf("-X gioui.org/ui/app.extraArgs=%s", strings.Join(appArgs, "|")) } if err := build(bi); err != nil { - errorf("gio: %v", err) + return fmt.Errorf("gio: %v", err) } + return nil } func build(bi *buildInfo) error { @@ -131,11 +136,6 @@ func build(bi *buildInfo) error { } } -func errorf(format string, args ...interface{}) { - fmt.Fprintf(os.Stderr, format+"\n", args...) - os.Exit(2) -} - func runCmdRaw(cmd *exec.Cmd) ([]byte, error) { if *printCommands { fmt.Printf("%s\n", strings.Join(cmd.Args, " "))