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 BackgroundWriter as BW
18import qualified Elm.Details as Details
19import qualified Generate
20import qualified Reporting
21import qualified Reporting.Exit as Exit
22import qualified Reporting.Task as Task
29readAsset :: FilePath -> IO BS.ByteString
31 BS.readFile ("reactor" </> "assets" </> path)
38buildReactorFrontEnd :: IO BS.ByteString
40 BW.withScope $ \scope ->
41 Dir.withCurrentDirectory "reactor" $
42 do root <- Dir.getCurrentDirectory
44 do details <- Task.eio Exit.ReactorBadDetails $ Details.load Reporting.silent scope root
45 artifacts <- Task.eio Exit.ReactorBadBuild $ Build.fromMains Reporting.silent root details mains
46 javascript <- Task.mapError Exit.ReactorBadGenerate $ Generate.prod root details artifacts
47 return (LBS.toStrict (B.toLazyByteString javascript))
50mains :: NE.List FilePath
53 ("src" </> "NotFound.elm")
54 [ "src" </> "Errors.elm"
55 , "src" </> "Index.elm"
59runTaskUnsafe :: Task.Task Exit.Reactor a -> IO a
61 do result <- Task.run task
67 do Exit.toStderr (Exit.reactorToReport exit)
69 "\n--------------------------------------------------------\
70 \\nError in Develop.StaticFiles.Build.buildReactorFrontEnd\
71 \\nCompile with `elm make` directly to figure it out faster\
72 \\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