Add usage info to gobetween

This commit is contained in:
Tobias Kessels
2024-08-01 16:22:47 +02:00
parent bfd44fa7ef
commit 6e35b0a4fa

View File

@@ -11,6 +11,19 @@ import (
"strings" "strings"
) )
func printUsage() {
fmt.Fprintf(os.Stderr, "Usage: %s [options] <range specification> [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) { func parseArgs(args []string) (int, int, string, error) {
var filename string var filename string
var start, length, end int var start, length, end int
@@ -66,7 +79,7 @@ func parseArgs(args []string) (int, int, string, error) {
found = true found = true
} else { } else {
found = false found = false
log.Fatal("No match found") printUsage()
} }
} }
} }
@@ -92,6 +105,11 @@ func main() {
flag.Parse() flag.Parse()
args := flag.Args() args := flag.Args()
if len(args) < 1 {
printUsage()
os.Exit(1)
}
startIndex, endIndex, filename, err := parseArgs(args) startIndex, endIndex, filename, err := parseArgs(args)
if err != nil { if err != nil {
fmt.Fprintf(os.Stderr, "Error parsing arguments: %v\n", err) fmt.Fprintf(os.Stderr, "Error parsing arguments: %v\n", err)