From 359d35fdd2541d2dda0a841fa82ba32125065809 Mon Sep 17 00:00:00 2001 From: dhax Date: Fri, 20 Sep 2024 02:07:12 +0200 Subject: [PATCH] change default viper config file to ./dev.env, fixes #2, #13 --- README.md | 8 ++------ cmd/root.go | 16 ++++------------ dev.env | 19 +++++++++++++++++++ go.mod | 1 - go.sum | 2 -- 5 files changed, 25 insertions(+), 21 deletions(-) create mode 100644 dev.env diff --git a/README.md b/README.md index 0dc58bd..809f637 100644 --- a/README.md +++ b/README.md @@ -83,18 +83,14 @@ Package auth/pwdless contains example api tests using a mocked database. Run the ### Environment Variables -By default viper will look at $HOME/.go-base.yaml for a config file. Setting your config as Environment Variables is recommended as by 12-Factor App. +By default viper will look at ./dev.env for a config file. Setting your config as Environment Variables is recommended as by 12-Factor App. | Name | Type | Default | Description | | ----------------------- | ------------- | --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | PORT | string | localhost:3000 | http address (accepts also port number only for heroku compability) | | LOG_LEVEL | string | debug | log level | | LOG_TEXTLOGGING | bool | false | defaults to json logging | -| DB_NETWORK | string | tcp | database 'tcp' or 'unix' connection | -| DB_ADDR | string | localhost:5432 | database tcp address or unix socket | -| DB_USER | string | postgres | database user name | -| DB_PASSWORD | string | postgres | database user password | -| DB_DATABASE | string | postgres | database shema name | +| DB_DSN | string | postgres://postgres:postgres@localhost:5432/postgres?sslmode=disable | database dsn connection string | | AUTH_LOGIN_URL | string | | client login url as sent in login token email | | AUTH_LOGIN_TOKEN_LENGTH | int | 8 | length of login token | | AUTH_LOGIN_TOKEN_EXPIRY | time.Duration | 11m | login token expiry | diff --git a/cmd/root.go b/cmd/root.go index f4fbe30..0357635 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -2,10 +2,8 @@ package cmd import ( "fmt" - "log" "os" - homedir "github.com/mitchellh/go-homedir" "github.com/spf13/cobra" "github.com/spf13/viper" ) @@ -37,7 +35,7 @@ func init() { // Here you will define your flags and configuration settings. // Cobra supports persistent flags, which, if defined here, // will be global for your application. - RootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default is $HOME/.go-base.yaml)") + RootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default is ./dev.env") RootCmd.PersistentFlags().Bool("db_debug", false, "log sql to console") viper.BindPFlag("db_debug", RootCmd.PersistentFlags().Lookup("db_debug")) @@ -52,15 +50,9 @@ func initConfig() { // Use config file from the flag. viper.SetConfigFile(cfgFile) } else { - // Find home directory. - home, err := homedir.Dir() - if err != nil { - log.Fatal(err) - } - - // Search config in home directory with name ".go-base" (without extension). - viper.AddConfigPath(home) - viper.SetConfigName(".go-base") + viper.AddConfigPath(".") + viper.SetConfigName("dev") + viper.SetConfigType("env") } viper.AutomaticEnv() // read in environment variables that match diff --git a/dev.env b/dev.env new file mode 100644 index 0000000..f22b591 --- /dev/null +++ b/dev.env @@ -0,0 +1,19 @@ +PORT=3000 +LOG_LEVEL=DEBUG + +DB_DSN=postgres://postgres:postgres@localhost:5432/postgres?sslmode=disable + +AUTH_LOGIN_URL=http://localhost:3000/login +AUTH_LOGIN_TOKEN_LENGTH=8 +AUTH_LOGIN_TOKEN_EXPIRY=11m +AUTH_JWT_EXPIRY=15m +AUTH_JWT_REFRESH_EXPIRY=1h + +EMAIL_SMTP_HOST= +EMAIL_SMTP_PORT= +EMAIL_SMTP_USER= +EMAIL_SMTP_PASSWORD= +EMAIL_FROM_ADDRESS= +EMAIL_FROM_NAME= + +ENABLE_CORS=false diff --git a/go.mod b/go.mod index 49526fb..2c6ea98 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,6 @@ require ( github.com/gofrs/uuid v4.4.0+incompatible github.com/jaytaylor/html2text v0.0.0-20230321000545-74c2419ad056 github.com/lestrrat-go/jwx/v2 v2.0.13 - github.com/mitchellh/go-homedir v1.1.0 github.com/mssola/user_agent v0.6.0 github.com/sirupsen/logrus v1.9.3 github.com/spf13/cobra v1.7.0 diff --git a/go.sum b/go.sum index 0d7e092..256d43b 100644 --- a/go.sum +++ b/go.sum @@ -200,8 +200,6 @@ github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWE github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= -github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mssola/user_agent v0.6.0 h1:uwPR4rtWlCHRFyyP9u2KOV0u8iQXmS7Z7feTrstQwk4=