1{-# LANGUAGE OverloadedStrings #-}
2module Develop.StaticFiles.Build
9import qualified Data.ByteString as BS
10import qualified Data.ByteString.Builder as B
11import qualified Data.ByteString.Lazy as LBS
12import qualified Data.NonEmptyList as NE
13import qualified System.Directory as Dir
14import System.FilePath ((</>))
16import qualified Reporting.Task as Task
18import qualified Elm.Details as Details
19import qualified Generate
20import qualified Reporting
21import qualified Reporting.Exit as Exit
28readAsset :: FilePath -> IO BS.ByteString
30 BS.readFile ("reactor" </> "assets" </> path)
37buildReactorFrontEnd :: IO BS.ByteString
39 Dir.withCurrentDirectory "reactor" $
40 do root <- Dir.getCurrentDirectory
42 do details <- Task.eio Exit.ReactorBadDetails $ Details.load Reporting.silent root
43 artifacts <- Task.eio Exit.ReactorBadBuild $ Build.fromMains Reporting.silent root details mains
44 javascript <- Task.mapError Exit.ReactorBadGenerate $ Generate.prod root details artifacts
45 return (LBS.toStrict (B.toLazyByteString javascript))
48mains :: NE.List FilePath
51 ("src" </> "NotFound.elm")
52 [ "src" </> "Errors.elm"
53 , "src" </> "Index.elm"
57runTaskUnsafe :: Task.Task Exit.Reactor a -> IO a
59 do result <- Task.run task
65 do Exit.toStderr (Exit.reactorToReport exit)
67 "\n--------------------------------------------------------\
68 \\nError in Develop.StaticFiles.Build.buildReactorFrontEnd\
69 \\nCompile with `elm make` directly to figure it out faster\
70 \\n--------------------------------------------------------\
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list