From 99f06f842902c12acca0cb1589d6f1e46966c753 Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Mon, 2 Nov 2026 23:51:21 +0100 Subject: [PATCH] fix: check supplied paths on startup and mention paths in usage --- main.go | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/main.go b/main.go index b685dfc..73c08b1 100644 --- a/main.go +++ b/main.go @@ -29,8 +29,15 @@ var verbose = flag.Bool("verbose", false, "Output additional information") var cpuprofile = flag.String("cpuprofile", "", "write cpu profile to file") func main() { + flag.Usage = printUsage flag.Parse() + if err := validateSearchPaths(flag.Args()); err != nil { + fmt.Fprintf(os.Stderr, "error: %v\n\n", err) + flag.Usage() + os.Exit(2) + } + if *cpuprofile != "" { f, err := os.Create(*cpuprofile) if err != nil { @@ -242,3 +249,17 @@ func printConfiguration() { fmt.Println() fmt.Println() } + +func printUsage() { + fmt.Fprintf(flag.CommandLine.Output(), "Usage: %s [options] [ ...]\n", os.Args[0]) + flag.PrintDefaults() +} + +func validateSearchPaths(paths []string) error { + for _, path := range paths { + if _, err := os.Stat(path); err != nil { + return fmt.Errorf("cannot access search path %q: %w", path, err) + } + } + return nil +}