diff --git a/cmd/flags.go b/cmd/flags.go index 19c3976bd..6a795d9bc 100644 --- a/cmd/flags.go +++ b/cmd/flags.go @@ -40,14 +40,22 @@ const ( flagDelay = "delay" ) -func bind(cmd *cobra.Command, flag string) { - if err := viper.BindPFlag(flag, cmd.Flags().Lookup(flag)); err != nil { +func bind(cmd *cobra.Command, key string, flagName ...string) { + name := key + if len(flagName) == 1 { + name = flagName[0] + } + if err := viper.BindPFlag(key, cmd.Flags().Lookup(name)); err != nil { panic(err) } } -func bindP(cmd *cobra.Command, flag string) { - if err := viper.BindPFlag(flag, cmd.PersistentFlags().Lookup(flag)); err != nil { +func bindP(cmd *cobra.Command, key string, flagName ...string) { + name := key + if len(flagName) == 1 { + name = flagName[0] + } + if err := viper.BindPFlag(key, cmd.PersistentFlags().Lookup(name)); err != nil { panic(err) } } diff --git a/cmd/root.go b/cmd/root.go index 80c862026..cfac66af1 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -56,9 +56,10 @@ func init() { rootCmd.PersistentFlags().Bool(flagHeaders, false, flagHeadersDescription) - rootCmd.PersistentFlags().String(flagSqlite, "", flagSqliteDescription) - // config file options + rootCmd.PersistentFlags().String(flagSqlite, "", flagSqliteDescription) + bindP(rootCmd, "database.dsn", flagSqlite) + rootCmd.PersistentFlags().StringP("log", "l", "info", "Log level (fatal, error, warn, info, debug, trace)") bindP(rootCmd, "log") diff --git a/server/db/db.go b/server/db/db.go index 539b5d752..bb404f4ab 100644 --- a/server/db/db.go +++ b/server/db/db.go @@ -16,6 +16,7 @@ var Instance *gorm.DB func New(driver, dsn string) (*gorm.DB, error) { var dialect gorm.Dialector + log := util.NewLogger("db") switch driver { case "sqlite": @@ -26,6 +27,7 @@ func New(driver, dsn string) (*gorm.DB, error) { if err := os.MkdirAll(filepath.Dir(file), os.ModePerm); err != nil { return nil, err } + log.INFO.Println("using sqlite database:", file) // avoid busy errors dialect = sqlite.Open(file + "?_pragma=busy_timeout(5000)") // case "postgres": @@ -37,7 +39,7 @@ func New(driver, dsn string) (*gorm.DB, error) { } return gorm.Open(dialect, &gorm.Config{ - Logger: &Logger{util.NewLogger("db")}, + Logger: &Logger{log}, }) }