From c13c5cf7dd5dbbb34162a0094ac5be1b5e225b59 Mon Sep 17 00:00:00 2001 From: Stephen Waits Date: Tue, 17 Feb 2015 02:10:50 -0800 Subject: [PATCH] better usage, command line error handling --- src/docrawler/docrawler.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/docrawler/docrawler.go b/src/docrawler/docrawler.go index e25b288..591e570 100644 --- a/src/docrawler/docrawler.go +++ b/src/docrawler/docrawler.go @@ -29,7 +29,7 @@ func doCrawl(homeurl string) itemSlice { // create first page's httpItem homeitem, err := newHTTPItem(nil, homeurl) if err != nil { - log.Fatal("unable to create httpItem for homeurl") + return nil } // set our number of outstanding pages (initially 1 to account for first page) @@ -141,9 +141,18 @@ func crawlItem(item *httpItem, rchan chan<- *httpItem) { } func main() { + // see if we've got no arguments + if len(os.Args) == 1 { + fmt.Printf("\nD.O. Crawler 1.0 Copyright (c) 2015 Stephen Waits 2015-02-17\n\n") + fmt.Printf("usage: %v \n\n", os.Args[0]) + os.Exit(1) + } // crawl each URL on the command line for _, u := range os.Args[1:] { pages := doCrawl(u) + if pages == nil { + log.Fatalf("unable to crawl %q, may be an invalid URL\n", u) + } l := sitemapToLocations(pages) j, _ := locationsToJSON(l) fmt.Println(j)