Avoid using `error` for option parsing failure
This commit is contained in:
parent
49250eadae
commit
76b1482f64
|
@ -221,20 +221,28 @@ runFormatter sys format options files = do
|
||||||
then NoProblems
|
then NoProblems
|
||||||
else SomeProblems
|
else SomeProblems
|
||||||
|
|
||||||
parseColorOption colorOption =
|
parseEnum name value list =
|
||||||
case colorOption of
|
case filter ((== value) . fst) list of
|
||||||
"auto" -> ColorAuto
|
[(name, value)] -> return value
|
||||||
"always" -> ColorAlways
|
[] -> do
|
||||||
"never" -> ColorNever
|
printErr $ "Unknown value for --" ++ name ++ ". " ++
|
||||||
_ -> error $ "Bad value for --color `" ++ colorOption ++ "'"
|
"Valid options are: " ++ (intercalate ", " $ map fst list)
|
||||||
|
throwError SupportFailure
|
||||||
|
|
||||||
parseSeverityOption severityOption =
|
parseColorOption value =
|
||||||
case severityOption of
|
parseEnum "color" value [
|
||||||
"error" -> ErrorC
|
("auto", ColorAuto),
|
||||||
"warning" -> WarningC
|
("always", ColorAlways),
|
||||||
"info" -> InfoC
|
("never", ColorNever)
|
||||||
"style" -> StyleC
|
]
|
||||||
_ -> error $ "Bad value for --severity `" ++ severityOption ++ "'"
|
|
||||||
|
parseSeverityOption value =
|
||||||
|
parseEnum "severity" value [
|
||||||
|
("error", ErrorC),
|
||||||
|
("warning", WarningC),
|
||||||
|
("info", InfoC),
|
||||||
|
("style", StyleC)
|
||||||
|
]
|
||||||
|
|
||||||
parseOption flag options =
|
parseOption flag options =
|
||||||
case flag of
|
case flag of
|
||||||
|
@ -265,10 +273,11 @@ parseOption flag options =
|
||||||
externalSources = True
|
externalSources = True
|
||||||
}
|
}
|
||||||
|
|
||||||
Flag "color" color ->
|
Flag "color" color -> do
|
||||||
|
option <- parseColorOption color
|
||||||
return options {
|
return options {
|
||||||
formatterOptions = (formatterOptions options) {
|
formatterOptions = (formatterOptions options) {
|
||||||
foColorOption = parseColorOption color
|
foColorOption = option
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -279,10 +288,11 @@ parseOption flag options =
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Flag "severity" severity ->
|
Flag "severity" severity -> do
|
||||||
|
option <- parseSeverityOption severity
|
||||||
return options {
|
return options {
|
||||||
checkSpec = (checkSpec options) {
|
checkSpec = (checkSpec options) {
|
||||||
csMinSeverity = parseSeverityOption severity
|
csMinSeverity = option
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue