aboutsummaryrefslogtreecommitdiffhomepage
path: root/cli/cli.go
diff options
context:
space:
mode:
Diffstat (limited to 'cli/cli.go')
-rw-r--r--cli/cli.go58
1 files changed, 58 insertions, 0 deletions
diff --git a/cli/cli.go b/cli/cli.go
new file mode 100644
index 0000000..67131e6
--- /dev/null
+++ b/cli/cli.go
@@ -0,0 +1,58 @@
+// Copyright 2018 Frédéric Guillot. All rights reserved.
+// Use of this source code is governed by the Apache 2.0
+// license that can be found in the LICENSE file.
+
+package cli
+
+import (
+ "flag"
+ "fmt"
+
+ "github.com/miniflux/miniflux/config"
+ "github.com/miniflux/miniflux/daemon"
+ "github.com/miniflux/miniflux/storage"
+ "github.com/miniflux/miniflux/version"
+)
+
+// Parse parses command line arguments.
+func Parse() {
+ flagInfo := flag.Bool("info", false, "Show application information")
+ flagVersion := flag.Bool("version", false, "Show application version")
+ flagMigrate := flag.Bool("migrate", false, "Migrate database schema")
+ flagFlushSessions := flag.Bool("flush-sessions", false, "Flush all sessions (disconnect users)")
+ flagCreateAdmin := flag.Bool("create-admin", false, "Create admin user")
+ flag.Parse()
+
+ cfg := config.NewConfig()
+ store := storage.NewStorage(
+ cfg.Get("DATABASE_URL", config.DefaultDatabaseURL),
+ cfg.GetInt("DATABASE_MAX_CONNS", config.DefaultDatabaseMaxConns),
+ )
+
+ if *flagInfo {
+ info()
+ return
+ }
+
+ if *flagVersion {
+ fmt.Println(version.Version)
+ return
+ }
+
+ if *flagMigrate {
+ store.Migrate()
+ return
+ }
+
+ if *flagFlushSessions {
+ flushSessions(store)
+ return
+ }
+
+ if *flagCreateAdmin {
+ createAdmin(store)
+ return
+ }
+
+ daemon.Run(cfg, store)
+}