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:
Joey Hess 2011-10-29 15:19:05 -04:00
parent 0d92aca1aa
commit f97c783283
40 changed files with 154 additions and 143 deletions

View file

@ -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