From c736b309bb91cfb38971c68376747fe16f5c64dc Mon Sep 17 00:00:00 2001 From: Erik de Castro Lopo Date: Tue, 27 Sep 2016 18:48:26 +1000 Subject: [PATCH] yesod-bin: Make it build with latest optparse-applicative Done with CPP hackery so the lower bound can remain unchanged. --- yesod-bin/Options.hs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/yesod-bin/Options.hs b/yesod-bin/Options.hs index 6d53cad4..4748509e 100644 --- a/yesod-bin/Options.hs +++ b/yesod-bin/Options.hs @@ -66,12 +66,20 @@ configLines = mapMaybe (mkLine . takeWhile (/='#')) . lines injectDefaultP :: M.Map [String] String -> [String] -> Parser a -> Parser a injectDefaultP _env _path n@(NilP{}) = n injectDefaultP env path p@(OptP o) +#if MIN_VERSION_optparse_applicative(0,13,0) + | (Option (CmdReader _ cmds f) props) <- o = +#else | (Option (CmdReader cmds f) props) <- o = +#endif let cmdMap = M.fromList (map (\c -> (c, mkCmd c)) cmds) mkCmd cmd = let (Just parseri) = f cmd in parseri { infoParser = injectDefaultP env (path ++ [normalizeName cmd]) (infoParser parseri) } +#if MIN_VERSION_optparse_applicative(0,13,0) + in OptP (Option (CmdReader Nothing cmds (`M.lookup` cmdMap)) props) +#else in OptP (Option (CmdReader cmds (`M.lookup` cmdMap)) props) +#endif | (Option (OptReader names (CReader _ rdr) _) _) <- o = p <|> either (const empty) pure