@@ -1,5 +1,6 @@
2 ( Flags(..)
2 ( Flags(..)
@@ -11,6 +12,7 @@ import qualified Elm.Compiler.Objects as Obj
11import qualified Elm.Project as Project
12import qualified Elm.Project as Project
12import qualified Generate.Output as Output
13import qualified Generate.Output as Output
13import qualified Reporting.Task as Task
14import qualified Reporting.Task as Task
15+import qualified Reporting.Progress.Json as Json
14import qualified Reporting.Progress.Terminal as Terminal
16import qualified Reporting.Progress.Terminal as Terminal
@@ -20,25 +22,34 @@ import qualified Reporting.Progress.Terminal as Terminal
21data Flags =
23data Flags =
24− , _debug :: Bool
25+ { _debug :: Bool
25 , _output :: Maybe Output.Output
26 , _output :: Maybe Output.Output
27+ , _report :: Maybe ReportType
29−run :: [FilePath] -> Flags -> IO ()
31+data ReportType
30−run paths flags =
32+ = Json
31− do reporter <- Terminal.create
32− void $ Task.run reporter $
33− do summary <- Project.getRoot
34− Project.compile (toOptions flags) summary paths
37−-- TODO figure out --warn flag
35+run :: [FilePath] -> Flags -> IO ()
38−toOptions :: Flags -> Output.Options
39−toOptions (Flags warn debug output) =
36+run paths (Flags debug output report) =
41− mode = if debug then Obj.Debug else Obj.Prod
39+ if debug then Obj.Debug else Obj.Prod
42− target = if False then Obj.Server else Obj.Client
40+
42+ Output.Options mode Obj.Client output
44− Output.Options warn mode target output
52+ do reporter <- makeReporter
53+ void $ Task.run reporter $
54+ do summary <- Project.getRoot
55+ Project.compile outputOptions summary paths