log.Fatal and more consistent error strings
This commit is contained in:
parent
9ae9c8e5fd
commit
c00904a004
6 changed files with 31 additions and 28 deletions
|
|
@ -2,6 +2,7 @@ package flags
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"log"
|
||||||
"os"
|
"os"
|
||||||
"reflect"
|
"reflect"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
@ -59,8 +60,8 @@ func MissingValue(args []string, i int) bool {
|
||||||
// if no value ahead in the args, print error and exit
|
// if no value ahead in the args, print error and exit
|
||||||
func ValidValueOrExit(args []string, i int) {
|
func ValidValueOrExit(args []string, i int) {
|
||||||
if MissingValue(args, i) {
|
if MissingValue(args, i) {
|
||||||
fmt.Printf("%s needs a value assignment\n", args[i])
|
log.Printf("um: %s needs a value assignment\n", args[i])
|
||||||
os.Exit(1)
|
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()
|
w.Flush()
|
||||||
os.Exit(0)
|
os.Exit(0)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
13
next/last.go
13
next/last.go
|
|
@ -3,8 +3,7 @@ package next
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"log"
|
||||||
"os"
|
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"regexp"
|
"regexp"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
@ -14,7 +13,8 @@ const (
|
||||||
// NOTE: the -r flag:
|
// NOTE: the -r flag:
|
||||||
LS_CMD = `ls -r [0-9]*.md`
|
LS_CMD = `ls -r [0-9]*.md`
|
||||||
// we only care about the number group:
|
// 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)
|
var fileRegexp *regexp.Regexp = regexp.MustCompile(FILE_REGEXP)
|
||||||
|
|
@ -35,7 +35,7 @@ func last() (string, error) {
|
||||||
|
|
||||||
lines := strings.Split(stdout.String(), "\n")
|
lines := strings.Split(stdout.String(), "\n")
|
||||||
if len(lines) == 0 {
|
if len(lines) == 0 {
|
||||||
return "", errors.New("um files not found")
|
return "", errors.New(NOT_FOUND_MSG)
|
||||||
}
|
}
|
||||||
return lines[0], nil
|
return lines[0], nil
|
||||||
}
|
}
|
||||||
|
|
@ -43,8 +43,7 @@ func last() (string, error) {
|
||||||
func Last() {
|
func Last() {
|
||||||
s, err := last()
|
s, err := last()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("um last: %v", err)
|
log.Fatalf("um last: %v", err)
|
||||||
os.Exit(1)
|
|
||||||
}
|
}
|
||||||
fmt.Println(s)
|
log.Println(s)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
15
next/next.go
15
next/next.go
|
|
@ -3,6 +3,7 @@ package next
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"log"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
|
||||||
|
|
@ -32,7 +33,7 @@ func parseArgs(args []string) options {
|
||||||
case i == 1 && !flags.HasDashPrefix(arg):
|
case i == 1 && !flags.HasDashPrefix(arg):
|
||||||
opts.Tags.Val = arg
|
opts.Tags.Val = arg
|
||||||
case i >= 2:
|
case i >= 2:
|
||||||
fmt.Println("um next : too many args")
|
log.Println("um next: too many args")
|
||||||
flags.Help("next", opts)
|
flags.Help("next", opts)
|
||||||
case arg == opts.Help.Long || arg == opts.Help.Short:
|
case arg == opts.Help.Long || arg == opts.Help.Short:
|
||||||
flags.Help("next", opts)
|
flags.Help("next", opts)
|
||||||
|
|
@ -47,7 +48,7 @@ func numFromLast(last string) (string, error) {
|
||||||
res := fileRegexp.FindStringSubmatch(last)
|
res := fileRegexp.FindStringSubmatch(last)
|
||||||
num := ""
|
num := ""
|
||||||
if len(res) < 2 {
|
if len(res) < 2 {
|
||||||
return num, errors.New("no um files in current dir")
|
return num, errors.New(NOT_FOUND_MSG)
|
||||||
}
|
}
|
||||||
num = res[1]
|
num = res[1]
|
||||||
return num, nil
|
return num, nil
|
||||||
|
|
@ -92,11 +93,11 @@ func emacsNext(f string, tags string) error {
|
||||||
quotedargs = fmt.Sprintf(`%s "%s"`, quotedargs, tags)
|
quotedargs = fmt.Sprintf(`%s "%s"`, quotedargs, tags)
|
||||||
}
|
}
|
||||||
fn := fmt.Sprintf(`(um-next %s)`, quotedargs)
|
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 {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
fmt.Println(string(out))
|
log.Print(string(out))
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -104,13 +105,13 @@ func Next(args []string) {
|
||||||
opts := parseArgs(args)
|
opts := parseArgs(args)
|
||||||
l, err := last()
|
l, err := last()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("err: %v\n", err)
|
log.Fatalf("um next: %v", err)
|
||||||
}
|
}
|
||||||
filename, err := next(l, opts.Descriptor.Val)
|
filename, err := next(l, opts.Descriptor.Val)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("err: %v\n", err)
|
log.Fatalf("um next: %v", err)
|
||||||
}
|
}
|
||||||
if err := emacsNext(filename, opts.Tags.Val); err != nil {
|
if err := emacsNext(filename, opts.Tags.Val); err != nil {
|
||||||
fmt.Printf("err: %v\n", err)
|
log.Fatalf("um next: %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
package sort
|
package sort
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"log"
|
||||||
|
|
||||||
"github.com/brtholomy/um/go/flags"
|
"github.com/brtholomy/um/go/flags"
|
||||||
)
|
)
|
||||||
|
|
@ -33,7 +33,7 @@ func parseArgs(args []string) options {
|
||||||
case arg == opts.Help.Long || arg == opts.Help.Short:
|
case arg == opts.Help.Long || arg == opts.Help.Short:
|
||||||
flags.Help("sort", opts)
|
flags.Help("sort", opts)
|
||||||
default:
|
default:
|
||||||
fmt.Println("invalid argument")
|
log.Println("um sort: invalid argument")
|
||||||
flags.Help("sort", opts)
|
flags.Help("sort", opts)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -42,5 +42,5 @@ func parseArgs(args []string) options {
|
||||||
|
|
||||||
func Sort(args []string) {
|
func Sort(args []string) {
|
||||||
opts := parseArgs(args)
|
opts := parseArgs(args)
|
||||||
fmt.Println(opts)
|
log.Println(opts)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
package tag
|
package tag
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"log"
|
||||||
|
|
||||||
"github.com/brtholomy/um/go/flags"
|
"github.com/brtholomy/um/go/flags"
|
||||||
)
|
)
|
||||||
|
|
@ -37,7 +37,7 @@ func parseArgs(args []string) options {
|
||||||
case arg == opts.Help.Long || arg == opts.Help.Short:
|
case arg == opts.Help.Long || arg == opts.Help.Short:
|
||||||
flags.Help("tag", opts)
|
flags.Help("tag", opts)
|
||||||
default:
|
default:
|
||||||
fmt.Println("invalid argument")
|
log.Println("um tag: invalid argument")
|
||||||
flags.Help("tag", opts)
|
flags.Help("tag", opts)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -46,5 +46,5 @@ func parseArgs(args []string) options {
|
||||||
|
|
||||||
func Tag(args []string) {
|
func Tag(args []string) {
|
||||||
opts := parseArgs(args)
|
opts := parseArgs(args)
|
||||||
fmt.Println(opts)
|
log.Println(opts)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
12
um.go
12
um.go
|
|
@ -2,6 +2,7 @@ package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"log"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
nextpkg "github.com/brtholomy/um/go/next"
|
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)
|
var help string = fmt.Sprintf("um [%s | %s | %s | %s] [--help | -h]", tag, next, last, sort)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
// NOTE: no prefix at all so that I can use log.Fatalf
|
||||||
|
log.SetFlags(0)
|
||||||
|
|
||||||
// TODO: do something useful:
|
// TODO: do something useful:
|
||||||
// run empty tag query?
|
// run empty tag query?
|
||||||
if len(os.Args) < 2 {
|
if len(os.Args) < 2 {
|
||||||
fmt.Println(help)
|
log.Fatalln(help)
|
||||||
os.Exit(1)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
cmd := Subcommand(os.Args[1])
|
cmd := Subcommand(os.Args[1])
|
||||||
|
|
@ -41,8 +44,7 @@ func main() {
|
||||||
case sort:
|
case sort:
|
||||||
sortpkg.Sort(args)
|
sortpkg.Sort(args)
|
||||||
default:
|
default:
|
||||||
fmt.Println("command not found")
|
log.Println("um: command not found")
|
||||||
fmt.Println(help)
|
log.Fatalln(help)
|
||||||
os.Exit(1)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue