Reorganize cmd init functions

This commit is contained in:
kolaente 2020-06-13 19:44:45 +02:00
parent d9d00ba60c
commit f5e44d9eb3
Signed by untrusted user: konrad
GPG Key ID: F40E70337AB24C9B
4 changed files with 22 additions and 7 deletions

View File

@ -31,10 +31,6 @@ import (
"os"
)
func init() {
cobra.OnInitialize(initialize)
}
var rootCmd = &cobra.Command{
Use: "vikunja",
Short: "Vikunja is the to-do app to organize your life.",
@ -47,7 +43,8 @@ alpine areas of the Andes and a relative of the llama.
Vikunja is a self-hosted To-Do list application with a web app and mobile apps for all platforms. It is licensed under the GPLv3.
Find more info at vikunja.io.`,
Run: webCmd.Run,
PreRun: webCmd.PreRun,
Run: webCmd.Run,
}
// Execute starts the application
@ -58,8 +55,8 @@ func Execute() {
}
}
// Initializes all kinds of things in the right order
func initialize() {
// Will only fullInit config, redis, logger but no db connection.
func lightInit() {
// Init the config
config.InitConfig()
@ -68,6 +65,12 @@ func initialize() {
// Set logger
log.InitLogger()
}
// Initializes all kinds of things in the right order
func fullInit() {
lightInit()
// Run the migrations
migration.Migrate(nil)

View File

@ -35,6 +35,9 @@ func init() {
var migrateCmd = &cobra.Command{
Use: "migrate",
Short: "Run all database migrations which didn't already run.",
PersistentPreRun: func(cmd *cobra.Command, args []string) {
lightInit()
},
Run: func(cmd *cobra.Command, args []string) {
migration.Migrate(nil)
},

View File

@ -30,6 +30,12 @@ var testmailCmd = &cobra.Command{
Use: "testmail [email]",
Short: "Send a test mail using the configured smtp connection",
Args: cobra.ExactArgs(1),
PreRun: func(cmd *cobra.Command, args []string) {
lightInit()
// Start the mail daemon
mail.StartMailDaemon()
},
Run: func(cmd *cobra.Command, args []string) {
log.Info("Sending testmail...")
email := args[0]

View File

@ -36,6 +36,9 @@ func init() {
var webCmd = &cobra.Command{
Use: "web",
Short: "Starts the rest api web server",
PreRun: func(cmd *cobra.Command, args []string) {
fullInit()
},
Run: func(cmd *cobra.Command, args []string) {
// Version notification