bitbucket.org/Aishee/synsec@v0.0.0-20210414005726-236fc01a153d/pkg/csconfig/common.go (about) 1 package csconfig 2 3 import ( 4 "fmt" 5 "path/filepath" 6 7 "github.com/pkg/errors" 8 log "github.com/sirupsen/logrus" 9 ) 10 11 /*daemonization/service related stuff*/ 12 type CommonCfg struct { 13 Daemonize bool 14 PidDir string `yaml:"pid_dir"` 15 LogMedia string `yaml:"log_media"` 16 LogDir string `yaml:"log_dir,omitempty"` //if LogMedia = file 17 LogLevel *log.Level `yaml:"log_level"` 18 WorkingDir string `yaml:"working_dir,omitempty"` ///var/run 19 } 20 21 func (c *Config) LoadCommon() error { 22 var err error 23 if c.Common == nil { 24 return fmt.Errorf("no common block provided in configuration file") 25 } 26 27 var CommonCleanup = []*string{ 28 &c.Common.PidDir, 29 &c.Common.LogDir, 30 &c.Common.WorkingDir, 31 } 32 for _, k := range CommonCleanup { 33 if *k == "" { 34 continue 35 } 36 *k, err = filepath.Abs(*k) 37 if err != nil { 38 return errors.Wrapf(err, "failed to get absolute path of '%s'", *k) 39 } 40 } 41 42 return nil 43 }