From c00904a0040c1549f7156778f9609238049ee7a0 Mon Sep 17 00:00:00 2001 From: bth Date: Mon, 19 Jan 2026 09:17:49 -0800 Subject: [PATCH] log.Fatal and more consistent error strings --- flags/flags.go | 7 ++++--- next/last.go | 13 ++++++------- next/next.go | 15 ++++++++------- sort/sort.go | 6 +++--- tag/tag.go | 6 +++--- um.go | 12 +++++++----- 6 files changed, 31 insertions(+), 28 deletions(-) diff --git a/flags/flags.go b/flags/flags.go index 72eafad..c9139e6 100644 --- a/flags/flags.go +++ b/flags/flags.go @@ -2,6 +2,7 @@ package flags import ( "fmt" + "log" "os" "reflect" "strings" @@ -59,8 +60,8 @@ func MissingValue(args []string, i int) bool { // if no value ahead in the args, print error and exit func ValidValueOrExit(args []string, i int) { if MissingValue(args, i) { - fmt.Printf("%s needs a value assignment\n", args[i]) - os.Exit(1) + log.Printf("um: %s needs a value assignment\n", args[i]) + log.Fatal("try: um [cmd] --help") } } @@ -92,7 +93,7 @@ func Help(subcmd string, opts any) { ) } } - fmt.Printf("um %s%s\n", subcmd, positional) + log.Printf("um %s%s\n", subcmd, positional) w.Flush() os.Exit(0) } diff --git a/next/last.go b/next/last.go index 7dc66b7..d4e2ada 100644 --- a/next/last.go +++ b/next/last.go @@ -3,8 +3,7 @@ package next import ( "bytes" "errors" - "fmt" - "os" + "log" "os/exec" "regexp" "strings" @@ -14,7 +13,8 @@ const ( // NOTE: the -r flag: LS_CMD = `ls -r [0-9]*.md` // we only care about the number group: - FILE_REGEXP = `(?m)^([0-9]+)\.[[:alpha:]]*\.*md$` + FILE_REGEXP = `(?m)^([0-9]+)\.[[:alpha:]]*\.*md$` + NOT_FOUND_MSG = "um files not found" ) var fileRegexp *regexp.Regexp = regexp.MustCompile(FILE_REGEXP) @@ -35,7 +35,7 @@ func last() (string, error) { lines := strings.Split(stdout.String(), "\n") if len(lines) == 0 { - return "", errors.New("um files not found") + return "", errors.New(NOT_FOUND_MSG) } return lines[0], nil } @@ -43,8 +43,7 @@ func last() (string, error) { func Last() { s, err := last() if err != nil { - fmt.Printf("um last: %v", err) - os.Exit(1) + log.Fatalf("um last: %v", err) } - fmt.Println(s) + log.Println(s) } diff --git a/next/next.go b/next/next.go index ebf1c53..032770d 100644 --- a/next/next.go +++ b/next/next.go @@ -3,6 +3,7 @@ package next import ( "errors" "fmt" + "log" "os/exec" "strconv" @@ -32,7 +33,7 @@ func parseArgs(args []string) options { case i == 1 && !flags.HasDashPrefix(arg): opts.Tags.Val = arg case i >= 2: - fmt.Println("um next : too many args") + log.Println("um next: too many args") flags.Help("next", opts) case arg == opts.Help.Long || arg == opts.Help.Short: flags.Help("next", opts) @@ -47,7 +48,7 @@ func numFromLast(last string) (string, error) { res := fileRegexp.FindStringSubmatch(last) num := "" if len(res) < 2 { - return num, errors.New("no um files in current dir") + return num, errors.New(NOT_FOUND_MSG) } num = res[1] return num, nil @@ -92,11 +93,11 @@ func emacsNext(f string, tags string) error { quotedargs = fmt.Sprintf(`%s "%s"`, quotedargs, tags) } fn := fmt.Sprintf(`(um-next %s)`, quotedargs) - out, err := exec.Command("emacsclient", "--eval", fn).Output() + out, err := exec.Command("emacsclient", "--eval", fn).CombinedOutput() if err != nil { return err } - fmt.Println(string(out)) + log.Print(string(out)) return nil } @@ -104,13 +105,13 @@ func Next(args []string) { opts := parseArgs(args) l, err := last() if err != nil { - fmt.Printf("err: %v\n", err) + log.Fatalf("um next: %v", err) } filename, err := next(l, opts.Descriptor.Val) if err != nil { - fmt.Printf("err: %v\n", err) + log.Fatalf("um next: %v", err) } if err := emacsNext(filename, opts.Tags.Val); err != nil { - fmt.Printf("err: %v\n", err) + log.Fatalf("um next: %v", err) } } diff --git a/sort/sort.go b/sort/sort.go index 6a19a18..a1f4abb 100644 --- a/sort/sort.go +++ b/sort/sort.go @@ -1,7 +1,7 @@ package sort import ( - "fmt" + "log" "github.com/brtholomy/um/go/flags" ) @@ -33,7 +33,7 @@ func parseArgs(args []string) options { case arg == opts.Help.Long || arg == opts.Help.Short: flags.Help("sort", opts) default: - fmt.Println("invalid argument") + log.Println("um sort: invalid argument") flags.Help("sort", opts) } } @@ -42,5 +42,5 @@ func parseArgs(args []string) options { func Sort(args []string) { opts := parseArgs(args) - fmt.Println(opts) + log.Println(opts) } diff --git a/tag/tag.go b/tag/tag.go index 6f2bfb1..d6db357 100644 --- a/tag/tag.go +++ b/tag/tag.go @@ -1,7 +1,7 @@ package tag import ( - "fmt" + "log" "github.com/brtholomy/um/go/flags" ) @@ -37,7 +37,7 @@ func parseArgs(args []string) options { case arg == opts.Help.Long || arg == opts.Help.Short: flags.Help("tag", opts) default: - fmt.Println("invalid argument") + log.Println("um tag: invalid argument") flags.Help("tag", opts) } } @@ -46,5 +46,5 @@ func parseArgs(args []string) options { func Tag(args []string) { opts := parseArgs(args) - fmt.Println(opts) + log.Println(opts) } diff --git a/um.go b/um.go index e2a485c..ec24fec 100644 --- a/um.go +++ b/um.go @@ -2,6 +2,7 @@ package main import ( "fmt" + "log" "os" nextpkg "github.com/brtholomy/um/go/next" @@ -21,11 +22,13 @@ const ( var help string = fmt.Sprintf("um [%s | %s | %s | %s] [--help | -h]", tag, next, last, sort) func main() { + // NOTE: no prefix at all so that I can use log.Fatalf + log.SetFlags(0) + // TODO: do something useful: // run empty tag query? if len(os.Args) < 2 { - fmt.Println(help) - os.Exit(1) + log.Fatalln(help) } cmd := Subcommand(os.Args[1]) @@ -41,8 +44,7 @@ func main() { case sort: sortpkg.Sort(args) default: - fmt.Println("command not found") - fmt.Println(help) - os.Exit(1) + log.Println("um: command not found") + log.Fatalln(help) } }