common.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package csconfig
  2. import (
  3. "fmt"
  4. "path/filepath"
  5. log "github.com/sirupsen/logrus"
  6. )
  7. /*daemonization/service related stuff*/
  8. type CommonCfg struct {
  9. Daemonize bool
  10. PidDir string `yaml:"pid_dir,omitempty"` // TODO: This is just for backward compat. Remove this later
  11. LogMedia string `yaml:"log_media"`
  12. LogDir string `yaml:"log_dir,omitempty"` //if LogMedia = file
  13. LogLevel *log.Level `yaml:"log_level"`
  14. WorkingDir string `yaml:"working_dir,omitempty"` // TODO: This is just for backward compat. Remove this later
  15. CompressLogs *bool `yaml:"compress_logs,omitempty"`
  16. LogMaxSize int `yaml:"log_max_size,omitempty"`
  17. LogMaxAge int `yaml:"log_max_age,omitempty"`
  18. LogMaxFiles int `yaml:"log_max_files,omitempty"`
  19. ForceColorLogs bool `yaml:"force_color_logs,omitempty"`
  20. }
  21. func (c *Config) loadCommon() error {
  22. var err error
  23. if c.Common == nil {
  24. c.Common = &CommonCfg{}
  25. }
  26. if c.Common.LogMedia == "" {
  27. c.Common.LogMedia = "stdout"
  28. }
  29. var CommonCleanup = []*string{
  30. &c.Common.LogDir,
  31. }
  32. for _, k := range CommonCleanup {
  33. if *k == "" {
  34. continue
  35. }
  36. *k, err = filepath.Abs(*k)
  37. if err != nil {
  38. return fmt.Errorf("failed to get absolute path of '%s': %w", *k, err)
  39. }
  40. }
  41. return nil
  42. }