Skip to content

Commit ddae724

Browse files
committed
Merge pull request purescript#1117 from purescript/write-multiple-doc-files
Allow psc-docs to write multiple modules to a file
2 parents 918997a + 4c53815 commit ddae724

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

psc-docs/Main.hs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,13 @@
1616
module Main where
1717

1818
import Control.Applicative
19-
import Control.Monad.Writer
2019
import Control.Arrow (first, second)
2120
import Control.Category ((>>>))
21+
import Control.Monad.Writer
22+
import Data.Function (on)
2223
import Data.List
2324
import Data.Maybe (fromMaybe)
25+
import Data.Tuple (swap)
2426
import Data.Version (showVersion)
2527

2628
import 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 ()

0 commit comments

Comments
 (0)