mirror of https://bitbucket.org/ausocean/av.git
make config error messages more consistent
This commit is contained in:
parent
4bbfa9ee6a
commit
5ff90e4411
|
@ -373,19 +373,19 @@ func (c *Config) Validate() error {
|
||||||
switch c.LogLevel {
|
switch c.LogLevel {
|
||||||
case logger.Debug, logger.Info, logger.Warning, logger.Error, logger.Fatal:
|
case logger.Debug, logger.Info, logger.Warning, logger.Error, logger.Fatal:
|
||||||
default:
|
default:
|
||||||
|
c.logInvalidField("LogLevel", defaultVerbosity)
|
||||||
c.LogLevel = defaultVerbosity
|
c.LogLevel = defaultVerbosity
|
||||||
c.Logger.Log(logger.Info, pkg+"bad LogLevel mode defined, defaulting", "LogLevel", defaultVerbosity)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if c.CameraIP == "" {
|
if c.CameraIP == "" {
|
||||||
c.Logger.Log(logger.Info, pkg+"no CameraIP defined, defaulting", "CameraIP", defaultCameraIP)
|
c.logInvalidField("CameraIP", defaultCameraIP)
|
||||||
c.CameraIP = defaultCameraIP
|
c.CameraIP = defaultCameraIP
|
||||||
}
|
}
|
||||||
|
|
||||||
switch c.Input {
|
switch c.Input {
|
||||||
case InputRaspivid, InputV4L, InputFile, InputAudio, InputRTSP:
|
case InputRaspivid, InputV4L, InputFile, InputAudio, InputRTSP:
|
||||||
case NothingDefined:
|
case NothingDefined:
|
||||||
c.Logger.Log(logger.Info, pkg+"no input type defined, defaulting", "input", defaultInput)
|
c.logInvalidField("Input", defaultInput)
|
||||||
c.Input = defaultInput
|
c.Input = defaultInput
|
||||||
default:
|
default:
|
||||||
return errors.New("bad input type defined in config")
|
return errors.New("bad input type defined in config")
|
||||||
|
@ -396,16 +396,16 @@ func (c *Config) Validate() error {
|
||||||
default:
|
default:
|
||||||
switch c.Input {
|
switch c.Input {
|
||||||
case OutputAudio:
|
case OutputAudio:
|
||||||
c.Logger.Log(logger.Info, pkg+"input is audio but no codec defined, defaulting", "inputCodec", defaultAudioInputCodec)
|
c.logInvalidField("InputCodec", defaultAudioInputCodec)
|
||||||
c.InputCodec = defaultAudioInputCodec
|
c.InputCodec = defaultAudioInputCodec
|
||||||
default:
|
default:
|
||||||
c.Logger.Log(logger.Info, pkg+"no input codec defined, defaulting", "inputCodec", defaultInputCodec)
|
c.logInvalidField("InputCodec", defaultInputCodec)
|
||||||
c.InputCodec = defaultInputCodec
|
c.InputCodec = defaultInputCodec
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if c.Outputs == nil {
|
if c.Outputs == nil {
|
||||||
c.Logger.Log(logger.Info, pkg+"no output defined, defaulting", "output", defaultOutput)
|
c.logInvalidField("Outputs", defaultOutput)
|
||||||
c.Outputs = append(c.Outputs, defaultOutput)
|
c.Outputs = append(c.Outputs, defaultOutput)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -423,14 +423,14 @@ func (c *Config) Validate() error {
|
||||||
}
|
}
|
||||||
|
|
||||||
if c.BurstPeriod == 0 {
|
if c.BurstPeriod == 0 {
|
||||||
c.Logger.Log(logger.Info, pkg+"no burst period defined, defaulting", "burstPeriod", defaultBurstPeriod)
|
c.logInvalidField("BurstPeriod", defaultBurstPeriod)
|
||||||
c.BurstPeriod = defaultBurstPeriod
|
c.BurstPeriod = defaultBurstPeriod
|
||||||
}
|
}
|
||||||
|
|
||||||
const maxMinFrames = 1000
|
const maxMinFrames = 1000
|
||||||
switch {
|
switch {
|
||||||
case c.MinFrames == 0:
|
case c.MinFrames == 0:
|
||||||
c.Logger.Log(logger.Info, pkg+"no min period defined, defaulting", "MinFrames", defaultMinFrames)
|
c.logInvalidField("MinFrames", defaultMinFrames)
|
||||||
c.MinFrames = defaultMinFrames
|
c.MinFrames = defaultMinFrames
|
||||||
case c.MinFrames < 0:
|
case c.MinFrames < 0:
|
||||||
return errors.New("refresh period is less than 0")
|
return errors.New("refresh period is less than 0")
|
||||||
|
@ -439,87 +439,88 @@ func (c *Config) Validate() error {
|
||||||
}
|
}
|
||||||
|
|
||||||
if c.FrameRate <= 0 {
|
if c.FrameRate <= 0 {
|
||||||
c.Logger.Log(logger.Info, pkg+"frame rate bad or unset, defaulting", "FrameRate", defaultFrameRate)
|
c.logInvalidField("FrameRate", defaultFrameRate)
|
||||||
c.FrameRate = defaultFrameRate
|
c.FrameRate = defaultFrameRate
|
||||||
}
|
}
|
||||||
|
|
||||||
if c.WriteRate <= 0 {
|
if c.WriteRate <= 0 {
|
||||||
c.Logger.Log(logger.Info, pkg+"write rate bad or unset, defaulting", "writeRate", defaultWriteRate)
|
c.logInvalidField("writeRate", defaultWriteRate)
|
||||||
c.WriteRate = defaultWriteRate
|
c.WriteRate = defaultWriteRate
|
||||||
}
|
}
|
||||||
|
|
||||||
if c.ClipDuration == 0 {
|
if c.ClipDuration == 0 {
|
||||||
c.Logger.Log(logger.Info, pkg+"no clip duration defined, defaulting", "ClipDuration", defaultClipDuration)
|
c.logInvalidField("ClipDuration", defaultClipDuration)
|
||||||
c.ClipDuration = defaultClipDuration
|
c.ClipDuration = defaultClipDuration
|
||||||
} else if c.ClipDuration < 0 {
|
} else if c.ClipDuration < 0 {
|
||||||
return errors.New("clip duration is less than 0")
|
return errors.New("clip duration is less than 0")
|
||||||
}
|
}
|
||||||
|
|
||||||
if c.RTPAddress == "" {
|
if c.RTPAddress == "" {
|
||||||
|
c.logInvalidField("RTPAddress", defaultRtpAddr)
|
||||||
c.RTPAddress = defaultRtpAddr
|
c.RTPAddress = defaultRtpAddr
|
||||||
}
|
}
|
||||||
|
|
||||||
if c.RBMaxElements <= 0 {
|
if c.RBMaxElements <= 0 {
|
||||||
c.Logger.Log(logger.Info, pkg+"RBMaxElements bad or unset, defaulting", "RBMaxElements", defaultRBMaxElements)
|
c.logInvalidField("RBMaxElements", defaultRBMaxElements)
|
||||||
c.RBMaxElements = defaultRBMaxElements
|
c.RBMaxElements = defaultRBMaxElements
|
||||||
}
|
}
|
||||||
|
|
||||||
if c.RBCapacity <= 0 {
|
if c.RBCapacity <= 0 {
|
||||||
c.Logger.Log(logger.Info, pkg+"RBCapacity bad or unset, defaulting", "RBCapacity", defaultRBCapacity)
|
c.logInvalidField("RBCapacity", defaultRBCapacity)
|
||||||
c.RBCapacity = defaultRBCapacity
|
c.RBCapacity = defaultRBCapacity
|
||||||
}
|
}
|
||||||
|
|
||||||
if c.RBWriteTimeout <= 0 {
|
if c.RBWriteTimeout <= 0 {
|
||||||
c.Logger.Log(logger.Info, pkg+"RBWriteTimeout bad or unset, defaulting", "RBWriteTimeout", defaultRBWriteTimeout)
|
c.logInvalidField("RBWriteTimeout", defaultRBWriteTimeout)
|
||||||
c.RBWriteTimeout = defaultRBWriteTimeout
|
c.RBWriteTimeout = defaultRBWriteTimeout
|
||||||
}
|
}
|
||||||
|
|
||||||
if c.PSITime <= 0 {
|
if c.PSITime <= 0 {
|
||||||
c.Logger.Log(logger.Info, pkg+"PSITime bad or unset, defaulting", "PSITime", defaultPSITime)
|
c.logInvalidField("PSITime", defaultPSITime)
|
||||||
c.PSITime = defaultPSITime
|
c.PSITime = defaultPSITime
|
||||||
}
|
}
|
||||||
if c.MotionInterval <= 0 {
|
if c.MotionInterval <= 0 {
|
||||||
c.Logger.Log(logger.Info, pkg+"MotionInterval bad or unset, defaulting", "MotionInterval", defaultMotionInterval)
|
c.logInvalidField("MotionInterval", defaultMotionInterval)
|
||||||
c.MotionInterval = defaultMotionInterval
|
c.MotionInterval = defaultMotionInterval
|
||||||
}
|
}
|
||||||
|
|
||||||
if c.MinFPS <= 0 {
|
if c.MinFPS <= 0 {
|
||||||
c.Logger.Log(logger.Info, pkg+"MinFPS bad or unset, defaulting", "MinFPS", defaultMinFPS)
|
c.logInvalidField("MinFPS", defaultMinFPS)
|
||||||
c.MinFPS = defaultMinFPS
|
c.MinFPS = defaultMinFPS
|
||||||
}
|
}
|
||||||
|
|
||||||
if c.KNNMinArea <= 0 {
|
if c.KNNMinArea <= 0 {
|
||||||
c.Logger.Log(logger.Info, pkg+"KNNMinArea bad or unset, defaulting", "KNNMinArea", defaultKNNMinArea)
|
c.logInvalidField("KNNMinArea", defaultKNNMinArea)
|
||||||
c.KNNMinArea = defaultKNNMinArea
|
c.KNNMinArea = defaultKNNMinArea
|
||||||
}
|
}
|
||||||
|
|
||||||
if c.KNNThreshold <= 0 {
|
if c.KNNThreshold <= 0 {
|
||||||
c.Logger.Log(logger.Info, pkg+"KNNThreshold bad or unset, defaulting", "KNNThreshold", defaultKNNThreshold)
|
c.logInvalidField("KNNThreshold", defaultKNNThreshold)
|
||||||
c.KNNThreshold = defaultKNNThreshold
|
c.KNNThreshold = defaultKNNThreshold
|
||||||
}
|
}
|
||||||
|
|
||||||
if c.KNNHistory == 0 {
|
if c.KNNHistory == 0 {
|
||||||
c.Logger.Log(logger.Info, pkg+"KNNHistory bad or unset, defaulting", "KNNHistory", defaultKNNHistory)
|
c.logInvalidField("KNNHistory", defaultKNNHistory)
|
||||||
c.KNNHistory = defaultKNNHistory
|
c.KNNHistory = defaultKNNHistory
|
||||||
}
|
}
|
||||||
|
|
||||||
if c.KNNKernel <= 0 {
|
if c.KNNKernel <= 0 {
|
||||||
c.Logger.Log(logger.Info, pkg+"KNNKernel bad or unset, defaulting", "KNNKernel", defaultKNNKernel)
|
c.logInvalidField("KNNKernel", defaultKNNKernel)
|
||||||
c.KNNKernel = defaultKNNKernel
|
c.KNNKernel = defaultKNNKernel
|
||||||
}
|
}
|
||||||
|
|
||||||
if c.MOGMinArea <= 0 {
|
if c.MOGMinArea <= 0 {
|
||||||
c.Logger.Log(logger.Info, pkg+"MOGMinArea bad or unset, defaulting", "MOGMinArea", defaultMOGMinArea)
|
c.logInvalidField("MOGMinArea", defaultMOGMinArea)
|
||||||
c.MOGMinArea = defaultMOGMinArea
|
c.MOGMinArea = defaultMOGMinArea
|
||||||
}
|
}
|
||||||
|
|
||||||
if c.MOGThreshold <= 0 {
|
if c.MOGThreshold <= 0 {
|
||||||
c.Logger.Log(logger.Info, pkg+"MOGThreshold bad or unset, defaulting", "MOGThreshold", defaultMOGThreshold)
|
c.logInvalidField("MOGThreshold", defaultMOGThreshold)
|
||||||
c.MOGThreshold = defaultMOGThreshold
|
c.MOGThreshold = defaultMOGThreshold
|
||||||
}
|
}
|
||||||
|
|
||||||
if c.MOGHistory == 0 {
|
if c.MOGHistory == 0 {
|
||||||
c.Logger.Log(logger.Info, pkg+"MOGHistory bad or unset, defaulting", "MOGHistory", defaultMOGHistory)
|
c.logInvalidField("MOGHistory", defaultMOGHistory)
|
||||||
c.MOGHistory = defaultMOGHistory
|
c.MOGHistory = defaultMOGHistory
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -529,13 +530,13 @@ func (c *Config) Validate() error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if os == raspian {
|
if os == raspian {
|
||||||
c.Logger.Log(logger.Info, "ShowWindows disabled on Raspbian GNU/Linux")
|
c.Logger.Log(logger.Info, pkg+"ShowWindows disabled on Raspbian GNU/Linux", "ShowWindows", false)
|
||||||
c.ShowWindows = false
|
c.ShowWindows = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if c.FileFPS <= 0 || (c.FileFPS > 0 && c.Input != InputFile) {
|
if c.FileFPS <= 0 || (c.FileFPS > 0 && c.Input != InputFile) {
|
||||||
c.Logger.Log(logger.Info, pkg+"FileFPS bad or unset, defaulting", "FileFPS", defaultFileFPS)
|
c.logInvalidField("FileFps", defaultFileFPS)
|
||||||
c.FileFPS = defaultFileFPS
|
c.FileFPS = defaultFileFPS
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -551,6 +552,10 @@ func osName() (string, error) {
|
||||||
return string(out)[6 : len(out)-2], nil
|
return string(out)[6 : len(out)-2], nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *Config) logInvalidField(name string, def interface{}) {
|
||||||
|
c.Logger.Log(logger.Info, pkg+name+" bad or unset, defaulting", name, def)
|
||||||
|
}
|
||||||
|
|
||||||
// stringInSlice returns true if want is in slice.
|
// stringInSlice returns true if want is in slice.
|
||||||
func stringInSlice(want string, slice []string) bool {
|
func stringInSlice(want string, slice []string) bool {
|
||||||
for _, s := range slice {
|
for _, s := range slice {
|
||||||
|
|
Loading…
Reference in New Issue