package main import ( "errors" "fmt" "os" "codeflow.dananglin.me.uk/apollo/web-crawler/internal/crawler" ) var ( errNoWebsiteProvided = errors.New("no website provided") errTooManyArgs = errors.New("too many arguments provided") ) func main() { if err := run(); err != nil { os.Stderr.WriteString("ERROR: " + err.Error() + "\n") os.Exit(1) } } func run() error { args := os.Args[1:] if len(args) == 0 { return errNoWebsiteProvided } if len(args) > 1 { return errTooManyArgs } baseURL := args[0] c, err := crawler.NewCrawler(baseURL) if err != nil { return fmt.Errorf("unable to create the crawler: %w", err) } go c.Crawl(baseURL) c.Wait() c.PrintReport() return nil }