@@ -180,19 +180,20 @@ build flags rootFile = do
180 let ifaces = if noPrelude then Map.empty else Prelude.interfaces
180 let ifaces = if noPrelude then Map.empty else Prelude.interfaces
181 (moduleName, interfaces) <- buildFiles flags (length files) ifaces "" files
181 (moduleName, interfaces) <- buildFiles flags (length files) ifaces "" files
182 js <- foldM appendToOutput "" files
182 js <- foldM appendToOutput "" files
183− case only_js flags of
184+ (extension, code) <- case only_js flags of
184 True -> do
185 True -> do
185 putStr "Generating JavaScript ... "
186 putStr "Generating JavaScript ... "
186− writeFile (buildPath flags rootFile "js") (genJs js)
187+ return ("js", genJs js)
188 False -> do
188 False -> do
189 putStr "Generating HTML ... "
189 putStr "Generating HTML ... "
190 runtime <- getRuntime flags
190 runtime <- getRuntime flags
191− let html = genHtml $ createHtml runtime (takeBaseName rootFile) (sources js) moduleName ""
191+ return ("html", genHtml $ createHtml runtime (takeBaseName rootFile) (sources js) moduleName "")
192− htmlFile = buildPath flags rootFile "html"
193+ let targetFile = buildPath flags rootFile extension
193− createDirectoryIfMissing True (takeDirectory htmlFile)
194+ createDirectoryIfMissing True (takeDirectory targetFile)
194− writeFile htmlFile html
195+ writeFile targetFile code
195− putStrLn "Done"
196+ putStrLn "Done"
198 appendToOutput :: String -> FilePath -> IO String
199 appendToOutput :: String -> FilePath -> IO String