diff --git a/README.md b/README.md index cf9c163..9217246 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,4 @@ # gin-gonic-prepack A pre-packaged Gin API with user and administrative structs, login and JWT authentication, and PSQL persistence. + +# To run tests \ No newline at end of file diff --git a/config/config.go b/config/config.go index e28d975..2e3fbef 100644 --- a/config/config.go +++ b/config/config.go @@ -1,9 +1,11 @@ package config import ( - "encoding/json" + "io" "log" "os" + + "github.com/BurntSushi/toml" ) type StackConfiguration struct { @@ -36,21 +38,27 @@ func GetConfigPath(filename string) string { if Environment == "" { Environment = "dev" } - return Environment + "/" + filename + return "config/" + Environment + "/" + filename } func LoadConfig() { - file, err := os.Open(GetConfigPath("conf.json")) + file, err := os.Open(GetConfigPath("conf.toml")) if err != nil { panic(err) } defer file.Close() - dec := json.NewDecoder(file) - if err := dec.Decode(&configInternal); err != nil { + + b, err := io.ReadAll(file) + if err != nil { + panic(err) + } + + err = toml.Unmarshal(b, &configInternal) + if err != nil { panic(err) } configInternal.ConfigLoaded = true - log.Printf("Loaded Config for stack " + Environment) + log.Printf("Loaded Config for stack '%s': %+v", Environment, configInternal) } diff --git a/config/dev/conf.json b/config/dev/conf.json deleted file mode 100644 index f56f8f5..0000000 --- a/config/dev/conf.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "AllowFreshAdminGeneration": true, - "AdminEmails": ["admin@admin.invalid"], - "AdminHmacEnv": "ADMIN_HMAC_ENV", - "UserHmacEnv": "USER_HMAC_ENV", - "AuthedRateLimitConfig": "ratelimit.auth.json", - "UnauthedRateLimitConfig": "ratelimit.unauth.json", - - "DbDialect": "sqlite", - "DbUrl": "prepack.db", - "DbUsername": "", - "DbPasswordSecret": "", - "DbPort": "", - "DbName": "" -} \ No newline at end of file diff --git a/config/dev/conf.toml b/config/dev/conf.toml new file mode 100644 index 0000000..73d86d4 --- /dev/null +++ b/config/dev/conf.toml @@ -0,0 +1,13 @@ +AllowFreshAdminGeneration = true +AdminEmails = ["admin@admin.invalid"] +AdminHmacEnv = "ADMIN_HMAC_ENV" +UserHmacEnv = "USER_HMAC_ENV" +AuthedRateLimitConfig = "ratelimit.auth.json" +UnauthedRateLimitConfig = "ratelimit.unauth.json" + +DbDialect = "sqlite" +DbUrl = "prepack.db" +DbUsername = "" +DbPasswordSecret = "" +DbPort = "" +DbName = "" \ No newline at end of file diff --git a/go.mod b/go.mod index 129148a..ade832d 100644 --- a/go.mod +++ b/go.mod @@ -5,6 +5,7 @@ go 1.18 require github.com/gin-gonic/gin v1.7.7 require ( + github.com/BurntSushi/toml v1.5.0 // indirect github.com/KyleBanks/depth v1.2.1 // indirect github.com/PuerkitoBio/purell v1.1.1 // indirect github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 // indirect diff --git a/go.sum b/go.sum index 4a53bcc..ef24695 100644 --- a/go.sum +++ b/go.sum @@ -1,4 +1,6 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/toml v1.5.0 h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg= +github.com/BurntSushi/toml v1.5.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/KyleBanks/depth v1.2.1 h1:5h8fQADFrWtarTdtDudMmGsC7GPbOAu6RVB3ffsVFHc= github.com/KyleBanks/depth v1.2.1/go.mod h1:jzSb9d0L43HxTQfT+oSA1EEp2q+ne2uh6XgeJcm8brE= github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs=