clean up check selection code
This new approach allows filtering out checks from the default set that are not appropriate for a command, rather than having to list every check that is appropriate. It also reduces some boilerplate. Haskell does not define Eq for functions, so I had to go a long way around with each check having a unique id. Meh.
This commit is contained in:
parent
0d92aca1aa
commit
f97c783283
40 changed files with 154 additions and 143 deletions
|
@ -38,10 +38,10 @@ parseCmd argv header cmds options = do
|
|||
when (null params) $ error $ "missing command" ++ usagemsg
|
||||
case lookupCmd (head params) of
|
||||
[] -> error $ "unknown command" ++ usagemsg
|
||||
[command] -> do
|
||||
[cmd] -> do
|
||||
_ <- sequence flags
|
||||
checkCommand command
|
||||
prepCommand command (drop 1 params)
|
||||
checkCommand cmd
|
||||
prepCommand cmd (drop 1 params)
|
||||
_ -> error "internal error: multiple matching commands"
|
||||
where
|
||||
getopt = case getOpt Permute options argv of
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue