package file import ( "github.com/asaskevich/govalidator" "github.com/juju/errors" ) // ConfigStruct is the configuration for File Provider. type ConfigStruct struct { Filename string `yaml:"filename"` MaxLines int `yaml:"max_lines"` MaxSize int `yaml:"max_size"` Daily bool `yaml:"daily"` MaxDays int `yaml:"max_days"` Rotate bool `yaml:"rotate"` Perm string `yaml:"perm"` RotatePerm string `yaml:"rotate_perm"` } // IsValid will check that the File configuration is valid. func (c *ConfigStruct) IsValid() error { if c.Filename == "" { return errors.NotValidf("Path is empty in File configuration") } else if isValid, _ := govalidator.IsFilePath(c.Filename); !isValid { return errors.NotValidf("Path is invalid in File configuration") } return nil } // ApplyDefault will check config and apply default on mandatory values. func (c *ConfigStruct) ApplyDefault() { if c.Perm == "" { c.Perm = "0660" } if c.RotatePerm == "" { c.RotatePerm = "0440" } }