From 63923e5de3fea586f892602e6d4b74a49bcc6940 Mon Sep 17 00:00:00 2001 From: Adam Mathes Date: Mon, 20 Feb 2017 11:28:43 -0800 Subject: switch to single binary (neko) with standard flags. update config file to use nicer names --- main.go | 63 ++++++++++++++++++++++++--------------------------------------- 1 file changed, 24 insertions(+), 39 deletions(-) (limited to 'main.go') diff --git a/main.go b/main.go index 20a1262..fdf4e4b 100644 --- a/main.go +++ b/main.go @@ -1,57 +1,42 @@ package main import ( - "fmt" + "flag" "adammathes.com/neko/config" - "adammathes.com/neko/crawler" - "adammathes.com/neko/importer" + "adammathes.com/neko/crawler" "adammathes.com/neko/models" "adammathes.com/neko/models/feed" "adammathes.com/neko/web" "log" - "os" ) func main() { - // TODO: change this - config.Read("./config.json") + var serve, update bool + var configFile, newFeed string + + flag.StringVar(&configFile, "c", "config.json", "`configuration` file") + flag.BoolVar(&update, "update", false, "update items by fetching feeds") + flag.BoolVar(&serve, "serve", false, "run http server") + flag.StringVar(&newFeed, "add", "", "add feed `http://example.com/rss.xml`") + flag.Parse() + + if !update && !serve { + flag.Usage() + return + } + + config.Read(configFile) models.InitDB(config.Config.DBServer) - if len(os.Args) < 2 { - fmt.Printf("usage: neko [web|addfeed|crawl]\n") - fmt.Printf("addfeed -- add a new feed from \n") - return + + if newFeed != "" { + feed.NewFeed(newFeed) } - cmd := os.Args[1] - switch cmd { - case "web": + if serve { log.Printf("starting web server at %s", config.Config.WebServer) web.Serve() - case "addfeed": - addFeed() - case "crawl": - crawl() - case "import": - importLegacy() - default: - panic("not a valid command") } -} - -func addFeed() { - if len(os.Args) < 2 { - log.Fatal("need a valid url") - } - url := os.Args[2] - feed.NewFeed(url) -} - -func importLegacy() { - json_file := os.Args[2] - log.Printf("importing json file from: %s", json_file) - importer.ImportJSON(json_file) -} - -func crawl() { - crawler.Crawl() + if update { + crawler.Crawl() + } } -- cgit v1.2.3