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  }