git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
Merge pull request #1117 from purescript/write-multiple-doc-files

Allow psc-docs to write multiple modules to a file

commitddae724ede8bc7221da4e1e65324b11f3ec81dd2 authorGary Burgess <gary.burgess@gmail.com> dateWed 13 May 2015, 20:31 (11 years ago) parent918997a4c53815
1 file changed+8−4
psc-docs/Main.hs+8−4
psc-docs/Main.hs+8−4
@@ -16,11 +16,13 @@
1616module Main where
1717
1818import Control.Applicative
19−import Control.Monad.Writer
2019import Control.Arrow (first, second)
2120import Control.Category ((>>>))
21+import Control.Monad.Writer
22+import Data.Function (on)
2223import Data.List
2324import Data.Maybe (fromMaybe)
25+import Data.Tuple (swap)
2426import Data.Version (showVersion)
2527
2628import Options.Applicative
@@ -75,7 +77,7 @@ docgen (PSCDocsOptions fmt input output) =
7577 Left (D.DesugarError err) -> do
7678 hPutStrLn stderr $ P.prettyPrintMultipleErrors False err
7779 exitFailure
78− Right ms' -> do
80+ Right ms' ->
7981 case output of
8082 EverythingToStdOut ->
8183 putStrLn (D.renderModulesAsMarkdown ms')
@@ -86,9 +88,11 @@ docgen (PSCDocsOptions fmt input output) =
8688 ToFiles names -> do
8789 let (ms, missing) = takeModulesByName' ms' names
8890 guardMissing missing
89− forM_ ms $ \(m, fp) -> do
91+ let ms'' = groupBy ((==) `on` fst) . sortBy (compare `on` fst) $ map swap ms
92+ forM_ ms'' $ \grp -> do
93+ let fp = fst (head grp)
9094 createDirectoryIfMissing True (takeDirectory fp)
91− writeFile fp (D.renderModulesAsMarkdown [m])
95+ writeFile fp (D.renderModulesAsMarkdown $ snd `map` grp)
9296
9397 where
9498 guardMissing [] = return ()