Initialize config default values on app start

pull/1/head
Nikita Tokarchuk 2 years ago
parent e0f5edd51a
commit 1105ce3ebd
Signed by: mainnika
GPG Key ID: A595FB7E3E56911C
  1. 36
      frontend/config/config.go
  2. 6
      go.mod

@ -1,5 +1,13 @@
package config
import (
"strings"
"github.com/sirupsen/logrus"
"github.com/spf13/pflag"
"github.com/spf13/viper"
)
// Content contains content-specific configuration
type Content struct {
Backend string `mapstructure:"backend"`
@ -16,3 +24,31 @@ type Config struct {
Unix string `mapstructure:"unix"`
Content Content `mapstructure:"content"`
}
// initialize default values on app-start
func init() {
pflag.BoolP("version", "V", false, "get application version")
pflag.BoolP("verbose", "v", false, "enable verbose logging")
pflag.StringP("config", "c", string("frontend.yaml"), "config file path")
pflag.String("addr", "127.0.0.1:8000", "tcp addr to listen")
pflag.String("unix", "", "unix socket path to listen")
pflag.String("base", "", "http URI prefix")
pflag.String("content.backend", "demo.ghost.io:443", "ghost backend addr")
pflag.String("content.key", "22444f78447824223cefc48062", "ghost content api key")
pflag.String("content.pinned", "contact", "pinned page slug")
pflag.Int("content.postsPerPage", 5, "amount of posts per page")
pflag.Parse()
viper.SetEnvKeyReplacer(strings.NewReplacer(".", "_"))
viper.AutomaticEnv()
viper.BindPFlags(pflag.CommandLine)
if viper.GetBool("verbose") {
logrus.SetLevel(logrus.DebugLevel)
logrus.Debug("Verbose mode")
}
}

@ -1,3 +1,9 @@
module code.tokarch.uk/mainnika/nikita-tokarch-uk
go 1.17
require (
github.com/sirupsen/logrus v1.8.1
github.com/spf13/pflag v1.0.5
github.com/spf13/viper v1.9.0
)

Loading…
Cancel
Save