From 6e35b0a4fa6f58945b6ef746d48604637a76df24 Mon Sep 17 00:00:00 2001 From: Tobias Kessels Date: Thu, 1 Aug 2024 16:22:47 +0200 Subject: [PATCH] Add usage info to gobetween --- tools/go/gobetween/gobetween.go | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/tools/go/gobetween/gobetween.go b/tools/go/gobetween/gobetween.go index c084486..bd255a5 100644 --- a/tools/go/gobetween/gobetween.go +++ b/tools/go/gobetween/gobetween.go @@ -11,6 +11,19 @@ import ( "strings" ) +func printUsage() { + fmt.Fprintf(os.Stderr, "Usage: %s [options] [file]\n", os.Args[0]) + fmt.Fprintln(os.Stderr, "Options:") + flag.PrintDefaults() + fmt.Fprintln(os.Stderr, "\nRange specification examples:") + fmt.Fprintln(os.Stderr, "10,20 Reads lines 10 to 20 from the input") + fmt.Fprintln(os.Stderr, "15:+5 Reads 5 lines starting from line 15") + fmt.Fprintln(os.Stderr, "3 Reads from line 3 to the end of the file") + fmt.Fprintln(os.Stderr, "+2 Reads the first 2 lines") + fmt.Fprintln(os.Stderr, "Please ensure you input valid range specifications and file paths.") + os.Exit(1) +} + func parseArgs(args []string) (int, int, string, error) { var filename string var start, length, end int @@ -66,7 +79,7 @@ func parseArgs(args []string) (int, int, string, error) { found = true } else { found = false - log.Fatal("No match found") + printUsage() } } } @@ -92,6 +105,11 @@ func main() { flag.Parse() args := flag.Args() + if len(args) < 1 { + printUsage() + os.Exit(1) + } + startIndex, endIndex, filename, err := parseArgs(args) if err != nil { fmt.Fprintf(os.Stderr, "Error parsing arguments: %v\n", err)