on 1238607 help sign in
56 lines 1.2 kB history raw
1{-# LANGUAGE OverloadedStrings #-}
2module Develop.StaticFiles.Build
3 ( readAsset
4 , compile
5 )
6 where
9import qualified Data.ByteString as BS
10import qualified System.Directory as Dir
11import System.FilePath ((</>))
13import qualified Elm.Project as Project
14import qualified Generate.Output as Output
15import qualified Reporting.Task as Task
16import qualified Reporting.Progress.Terminal as Terminal
20-- ASSETS
23readAsset :: FilePath -> IO BS.ByteString
24readAsset path =
25 BS.readFile ("reactor" </> "assets" </> path)
29-- COMPILE
32compile :: IO BS.ByteString
33compile =
34 Dir.withCurrentDirectory "reactor" $
35 do reporter <- Terminal.create
36 Task.run reporter $
37 do summary <- Project.getRoot
38 let jsOutput = Just (Output.JavaScript Nothing tempFileName)
39 Project.compile Output.Prod Output.Client jsOutput summary rootPaths
41 result <- BS.readFile tempFileName
42 seq (BS.length result) (Dir.removeFile tempFileName)
43 return result
46tempFileName :: FilePath
47tempFileName =
48 "elm.js"
51rootPaths :: [FilePath]
52rootPaths =
53 [ "src" </> "Errors.elm"
54 , "src" </> "Index.elm"
55 , "src" </> "NotFound.elm"
56 ]