@@ -46,13 +46,11 @@ usage = do
47 putStrLn $ usageInfo pn (options config)
47 putStrLn $ usageInfo pn (options config)
49−configFromArgs :: [Arg] -> Config -> Config
49+updateConfigFromArg :: Arg -> Config -> Config
50−configFromArgs [] c =
50+updateConfigFromArg Help c =
52−configFromArgs (Help:as) c =
54−configFromArgs (OutputPath p:as) c =
52+updateConfigFromArg (OutputPath p) c =
55− configFromArgs as (c { configOutputPath = Just p })
53+ c { configOutputPath = Just p }
57main :: IO ()
55main :: IO ()
@@ -68,7 +66,7 @@ main = do
69 exitFailure
67 exitFailure
71− let config = configFromArgs args defConfig
69+ let config = foldr updateConfigFromArg defConfig args
73 outputPath <- case configOutputPath config of
71 outputPath <- case configOutputPath config of
74 Nothing -> do
72 Nothing -> do