@@ -6,21 +6,17 @@ module Init
8import Prelude hiding (init)
8import Prelude hiding (init)
9−import Control.Monad.Trans (liftIO)
10import qualified Data.Map as Map
9import qualified Data.Map as Map
11import qualified System.Directory as Dir
10import qualified System.Directory as Dir
13−import qualified Deps.Registry as Registry
14import qualified Deps.Solver as Solver
12import qualified Deps.Solver as Solver
15import qualified Elm.Constraint as Con
13import qualified Elm.Constraint as Con
16import qualified Elm.Outline as Outline
14import qualified Elm.Outline as Outline
17import qualified Elm.Package as Pkg
15import qualified Elm.Package as Pkg
18import qualified Elm.Version as V
16import qualified Elm.Version as V
20import qualified Reporting
17import qualified Reporting
21import qualified Reporting.Doc as D
18import qualified Reporting.Doc as D
22import qualified Reporting.Exit as Exit
19import qualified Reporting.Exit as Exit
23−import qualified Stuff
@@ -68,20 +64,24 @@ question =
69init :: IO (Either Exit.Init ())
65init :: IO (Either Exit.Init ())
71− do cache <- Stuff.getPackageCache
67+ do eitherEnv <- Solver.initEnv
72− manager <- Http.getManager
73− eregistry <- Registry.latest manager cache
74− case eregistry of
68+ case eitherEnv of
75− Left rp ->
69+ Left problem ->
76− return (Left (Exit.InitRegistryProblem rp))
70+ return (Left (Exit.InitRegistryProblem problem))
78− Right registry ->
72+ Right (Solver.Env cache _ connection registry) ->
79− do result <- Solver.online cache manager registry defaults
73+ do result <- Solver.verify cache connection registry defaults
80 case result of
74 case result of
81− Left _ ->
75+ Solver.Err exit ->
76+ return (Left (Exit.InitSolverProblem exit))
82 return (Left (Exit.InitNoSolution (Map.keys defaults)))
79 return (Left (Exit.InitNoSolution (Map.keys defaults)))
81+ Solver.NoOfflineSolution ->
82+ return (Left (Exit.InitNoOfflineSolution (Map.keys defaults)))
84− Right details ->
84+ Solver.Ok details ->
86 solution = Map.map (\(Solver.Details vsn _) -> vsn) details
86 solution = Map.map (\(Solver.Details vsn _) -> vsn) details
87 directs = Map.intersection solution defaults
87 directs = Map.intersection solution defaults