on 8f7c3cd help sign in
70 lines 1.4 kB history raw
1{-# OPTIONS_GHC -Wall #-}
2{-# LANGUAGE OverloadedStrings #-}
3module Develop.StaticFiles.Build
4 ( readAsset
5 , compile
6 )
7 where
10import Control.Monad (void)
11import qualified Data.ByteString as BS
12import qualified System.Directory as Dir
13import System.FilePath ((</>))
15import qualified Elm.Compiler.Objects as Obj
16import qualified Elm.Project as Project
17import qualified Elm.Project.Flags as Flags
18import qualified Reporting.Task as Task
19import qualified Reporting.Progress.Terminal as Terminal
23-- ASSETS
26readAsset :: FilePath -> IO BS.ByteString
27readAsset path =
28 BS.readFile ("ui" </> "assets" </> path)
32-- COMPILE
35compile :: IO BS.ByteString
36compile =
37 if True then return "TODO" else
38 do Dir.setCurrentDirectory "ui"
40 reporter <- Terminal.create
41 void $ Task.run reporter $
42 do summary <- Project.getRoot
43 Project.compile options summary rootPaths
45 result <- BS.readFile tempFileName
46 seq (BS.length result) (Dir.removeFile tempFileName)
48 Dir.setCurrentDirectory ".."
50 return result
53options :: Flags.Options
54options =
55 Flags.Options Obj.Prod Obj.Client $
56 Just (Flags.Custom Nothing tempFileName)
59tempFileName :: FilePath
60tempFileName =
61 "elm.js"
64rootPaths :: [FilePath]
65rootPaths =
66 [ "src" </> "Errors.elm"
67 , "src" </> "Index.elm"
68 , "src" </> "Start.elm"
69 , "src" </> "NotFound.elm"
70 ]