@@ -11,6 +11,7 @@ module Generate.Output
14+import Control.Concurrent.MVar (MVar, putMVar)
14import Control.Monad.Trans (liftIO)
15import Control.Monad.Trans (liftIO)
15import qualified Data.ByteString.Builder as B
16import qualified Data.ByteString.Builder as B
16import qualified Data.Map as Map
17import qualified Data.Map as Map
@@ -81,7 +82,7 @@ generateMonolith (Options mode target maybeOutput) (Summary.Summary _ project _
81 Obj.None ->
82 Obj.None ->
84− Obj.Some name names builder ->
85+ Obj.Some name _names builder ->
86 monolith =
87 monolith =
87 "(function(scope){\n'use strict';"
88 "(function(scope){\n'use strict';"
@@ -92,22 +93,22 @@ generateMonolith (Options mode target maybeOutput) (Summary.Summary _ project _
92 Nothing ->
93 Nothing ->
93 IO.writeBuilder "elm.js" monolith
94 IO.writeBuilder "elm.js" monolith
95− Just None ->
98+ None ->
96− return ()
99+ return ()
101+ JavaScript maybeDir fileName ->
102+ do path <- toWritablePath maybeDir fileName
103+ IO.writeBuilder path monolith
98− Just (JavaScript maybeDir fileName) ->
105+ HtmlBuilder mvar ->
99− do path <- toWritablePath maybeDir fileName
106+ putMVar mvar (Html.sandwich name monolith)
100− IO.writeBuilder path monolith
102− Just (Html maybeDir fileName) ->
108+ Html maybeDir fileName ->
105 do path <- toWritablePath maybeDir fileName
109 do path <- toWritablePath maybeDir fileName
106 IO.writeBuilder path (Html.sandwich name monolith)
110 IO.writeBuilder path (Html.sandwich name monolith)
113-- GENERATE REPL MONOLITH
114-- GENERATE REPL MONOLITH
@@ -181,6 +182,7 @@ data Output
182 | Html (Maybe FilePath) FilePath
183 | Html (Maybe FilePath) FilePath
183 | JavaScript (Maybe FilePath) FilePath
184 | JavaScript (Maybe FilePath) FilePath
185+ | HtmlBuilder (MVar B.Builder)
186toWritablePath :: Maybe FilePath -> FilePath -> IO FilePath
188toWritablePath :: Maybe FilePath -> FilePath -> IO FilePath