aboutsummaryrefslogtreecommitdiffhomepage
path: root/cli
diff options
context:
space:
mode:
authorGravatar Frédéric Guillot <fred@miniflux.net>2019-06-01 18:18:09 -0700
committerGravatar fguillot <fred@miniflux.net>2019-06-02 06:30:08 -0700
commit228862fefaa645026caa483ffe9993bf8c00b22e (patch)
tree2b590dc6cda3e50928a31ce673641357805f75ce /cli
parent04d85b3c63afcf6c9539fc8dc7a91c4e36c2e8fb (diff)
Refactor config package
- Parse configuration only once during startup time - Store configuration values in a global variable
Diffstat (limited to 'cli')
-rw-r--r--cli/cli.go22
-rw-r--r--cli/daemon.go16
2 files changed, 24 insertions, 14 deletions
diff --git a/cli/cli.go b/cli/cli.go
index 623b9bb..ae94aba 100644
--- a/cli/cli.go
+++ b/cli/cli.go
@@ -51,9 +51,11 @@ func Parse() {
flag.BoolVar(&flagDebugMode, "debug", false, flagDebugModeHelp)
flag.Parse()
- cfg := config.NewConfig()
+ if err := config.ParseConfig(); err != nil {
+ logger.Fatal("%v", err)
+ }
- if flagDebugMode || cfg.HasDebugMode() {
+ if flagDebugMode || config.Opts.HasDebugMode() {
logger.EnableDebug()
}
@@ -67,7 +69,15 @@ func Parse() {
return
}
- db, err := database.NewConnectionPool(cfg.DatabaseURL(), cfg.DatabaseMinConns(), cfg.DatabaseMaxConns())
+ if config.Opts.IsDefaultDatabaseURL() {
+ logger.Info("The default value for DATABASE_URL is used")
+ }
+
+ db, err := database.NewConnectionPool(
+ config.Opts.DatabaseURL(),
+ config.Opts.DatabaseMinConns(),
+ config.Opts.DatabaseMaxConns(),
+ )
if err != nil {
logger.Fatal("Unable to connect to the database: %v", err)
}
@@ -101,14 +111,14 @@ func Parse() {
}
// Run migrations and start the deamon.
- if cfg.RunMigrations() {
+ if config.Opts.RunMigrations() {
database.Migrate(db)
}
// Create admin user and start the deamon.
- if cfg.CreateAdmin() {
+ if config.Opts.CreateAdmin() {
createAdmin(store)
}
- startDaemon(cfg, store)
+ startDaemon(store)
}
diff --git a/cli/daemon.go b/cli/daemon.go
index aa673d4..dc12087 100644
--- a/cli/daemon.go
+++ b/cli/daemon.go
@@ -16,13 +16,13 @@ import (
"miniflux.app/config"
"miniflux.app/logger"
"miniflux.app/reader/feed"
- "miniflux.app/service/scheduler"
"miniflux.app/service/httpd"
+ "miniflux.app/service/scheduler"
"miniflux.app/storage"
"miniflux.app/worker"
)
-func startDaemon(cfg *config.Config, store *storage.Storage) {
+func startDaemon(store *storage.Storage) {
logger.Info("Starting Miniflux...")
stop := make(chan os.Signal, 1)
@@ -30,17 +30,17 @@ func startDaemon(cfg *config.Config, store *storage.Storage) {
signal.Notify(stop, syscall.SIGTERM)
feedHandler := feed.NewFeedHandler(store)
- pool := worker.NewPool(feedHandler, cfg.WorkerPoolSize())
+ pool := worker.NewPool(feedHandler, config.Opts.WorkerPoolSize())
go showProcessStatistics()
- if cfg.HasSchedulerService() {
- scheduler.Serve(cfg, store, pool)
+ if config.Opts.HasSchedulerService() {
+ scheduler.Serve(store, pool)
}
var httpServer *http.Server
- if cfg.HasHTTPService() {
- httpServer = httpd.Serve(cfg, store, pool, feedHandler)
+ if config.Opts.HasHTTPService() {
+ httpServer = httpd.Serve(store, pool, feedHandler)
}
<-stop
@@ -64,4 +64,4 @@ func showProcessStatistics() {
runtime.NumGoroutine(), runtime.NumCPU())
time.Sleep(30 * time.Second)
}
-} \ No newline at end of file
+}