on fdf2d75 help sign in
elk/builder/src/File/Args.hs
40 lines 891 B history raw
1{-# OPTIONS_GHC -Wall #-}
2module File.Args
3 ( Args(..)
4 , fromPaths
5 , fromSummary
6 )
7 where
10import Data.List.NonEmpty (NonEmpty((:|)))
11import qualified Elm.Compiler.Module as Module
12import qualified Elm.Project.Json as Project
13import qualified Elm.Project.Summary as Summary
14import qualified Reporting.Exit as Exit
15import qualified Reporting.Task as Task
18data Args roots
19 = Pkg [Module.Raw]
20 | Roots (NonEmpty roots)
23fromPaths :: Summary.Summary -> [FilePath] -> Task.Task (Args FilePath)
24fromPaths summary paths =
25 case paths of
26 [] ->
27 fromSummary summary
29 first : rest ->
30 return $ Roots (first :| rest)
33fromSummary :: Summary.Summary -> Task.Task (Args a)
34fromSummary (Summary.Summary _ project _ _ _) =
35 case project of
36 Project.Pkg info ->
37 return $ Pkg (Project.getExposed info)
39 Project.App _ ->
40 Task.throw Exit.CannotMakeNothing