diff --git a/.gitignore b/.gitignore index 8131de7..b27dac4 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ /gofeed /_output /yarr +*.db diff --git a/main.go b/main.go index 52cff27..db12a35 100644 --- a/main.go +++ b/main.go @@ -11,17 +11,24 @@ import ( ) func main() { + var addr, storageFile string + flag.StringVar(&addr, "addr", "127.0.0.1:7070", "address to run server on") + flag.StringVar(&storageFile, "db", "", "storage file path") + flag.Parse() + logger := log.New(os.Stdout, "", log.Ldate|log.Ltime|log.Lshortfile) configPath, err := os.UserConfigDir() if err != nil { logger.Fatal("Failed to get config dir: ", err) } - storagePath := filepath.Join(configPath, "yarr") - storageFile := filepath.Join(storagePath, "storage.db") - if err := os.MkdirAll(storagePath, 0755); err != nil { - logger.Fatal("Failed to create app config dir: ", err) + if storageFile == "" { + storagePath := filepath.Join(configPath, "yarr") + if err := os.MkdirAll(storagePath, 0755); err != nil { + logger.Fatal("Failed to create app config dir: ", err) + } + storageFile = filepath.Join(storagePath, "storage.db") } db, err := storage.New(storageFile, logger) @@ -29,10 +36,6 @@ func main() { logger.Fatal("Failed to initialise database: ", err) } - var addr string - flag.StringVar(&addr, "addr", "127.0.0.1:7070", "address to run server on") - flag.Parse() - srv := server.New(db, logger, addr) platform.Start(srv) } diff --git a/server/server.go b/server/server.go index 5a259a1..864b64f 100644 --- a/server/server.go +++ b/server/server.go @@ -33,7 +33,7 @@ func (h *Handler) Start() { h.startJobs() s := &http.Server{Addr: h.Addr, Handler: h} s.ListenAndServe() -} +} func (h Handler) ServeHTTP(rw http.ResponseWriter, req *http.Request) { route, vars := getRoute(req)