diff options
| author | demo <demo@antix1> | 2026-05-23 10:44:55 -0400 |
|---|---|---|
| committer | demo <demo@antix1> | 2026-05-23 10:45:42 -0400 |
| commit | f0b1513a93417dbfa63f762f5b2a3c93041a7522 (patch) | |
| tree | 2390eddddc4bc945f081dbb34a4660fa5b2bd2eb /main.go | |
| parent | 2d1d02c95493b02d566c9f38c2c9cda8715eee3f (diff) | |
feat: add maxURLs CLI flag
I've also added some more input sanitization.
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 12 |
1 files changed, 11 insertions, 1 deletions
@@ -11,16 +11,26 @@ import ( func main() { maxConcurrency := flag.Int("c", 0, "Maximum number of concurrent queue pushes") startRawURL := flag.String("url", "", "Entry-point URL") + maxURLs := flag.Int("max", 0, "Maximum number of URLs to collect (0 means no limit)") + flag.Parse() if *maxConcurrency == 0 { log.Fatal("Missing -c argument") } + if *maxConcurrency < 1 { + log.Fatalf("Invalid -c argument: %d", *maxConcurrency) + } + if *startRawURL == "" { log.Fatal("Missing -url argument") } + if *maxURLs < 0 { + log.Fatalf("Invalid -max argument: %d", *maxURLs) + } + startURL, err := url.Parse(*startRawURL) if err != nil { log.Fatal(err) @@ -42,7 +52,7 @@ func main() { loop: for list := range worklist { for _, u := range list { - if len(seen) == 30 { + if len(seen) == *maxURLs { cancel() break loop } |
