on master help sign in
shuffle diff logic to report about problems fetching versions first
df7839bEvan Czaplicki
terminal/src/Diff.hs+14−19
@@ -72,7 +72,7 @@ getEnv =
72 do maybeRoot <- Task.io $ Stuff.findRoot
72 do maybeRoot <- Task.io $ Stuff.findRoot
73 cache <- Task.io $ Stuff.getPackageCache
73 cache <- Task.io $ Stuff.getPackageCache
74 manager <- Task.io $ Http.getManager
74 manager <- Task.io $ Http.getManager
75− registry <- Task.eio Exit.DiffBadRegistry $ Registry.latest manager cache
75+ registry <- Task.eio Exit.DiffMustHaveLatestRegistry $ Registry.latest manager cache
76 return (Env maybeRoot cache manager registry)
76 return (Env maybeRoot cache manager registry)
77
77
78
78
@@ -104,13 +104,15 @@ diff env@(Env _ _ _ registry) args =
104 writeDiff oldDocs newDocs
104 writeDiff oldDocs newDocs
105
105
106 CodeVsLatest ->
106 CodeVsLatest ->
107− do (newDocs, name, vsns) <- generateDocs env
107+ do (name, vsns) <- readOutline env
108 oldDocs <- getLatestDocs env name vsns
108 oldDocs <- getLatestDocs env name vsns
109+ newDocs <- generateDocs env
109 writeDiff oldDocs newDocs
110 writeDiff oldDocs newDocs
110
111
111 CodeVsExactly version ->
112 CodeVsExactly version ->
112− do (newDocs, name, vsns) <- generateDocs env
113+ do (name, vsns) <- readOutline env
113 oldDocs <- getDocs env name vsns version
114 oldDocs <- getDocs env name vsns version
115+ newDocs <- generateDocs env
114 writeDiff oldDocs newDocs
116 writeDiff oldDocs newDocs
115
117
116
118
@@ -161,8 +163,8 @@ readOutline (Env maybeRoot _ _ registry) =
161-- GENERATE DOCS
163-- GENERATE DOCS
162
164
163
165
164−generateDocs :: Env -> Task (Docs.Documentation, Pkg.Name, Registry.KnownVersions)
166+generateDocs :: Env -> Task Docs.Documentation
165−generateDocs (Env maybeRoot _ _ registry) =
167+generateDocs (Env maybeRoot _ _ _) =
166 case maybeRoot of
168 case maybeRoot of
167 Nothing ->
169 Nothing ->
168 Task.throw $ Exit.DiffNoOutline
170 Task.throw $ Exit.DiffNoOutline
@@ -177,20 +179,13 @@ generateDocs (Env maybeRoot _ _ registry) =
177 Task.throw $ Exit.DiffApplication
179 Task.throw $ Exit.DiffApplication
178
180
179 Details.ValidPkg pkg exposed ->
181 Details.ValidPkg pkg exposed ->
180− case Registry.getVersions pkg registry of
181− Just vsns ->
182− case exposed of
182+ case exposed of
183− [] ->
183+ [] ->
184− Task.throw Exit.DiffNoExposed
184+ Task.throw $ Exit.DiffNoExposed pkg
185−
185+
186− e:es ->
186+ e:es ->
187− do docs <-
188− Task.eio Exit.DiffBadBuild $
187+ Task.eio Exit.DiffBadBuild $
189− Build.fromExposed Reporting.silent root details Build.KeepDocs (NE.List e es)
188+ Build.fromExposed Reporting.silent root details Build.KeepDocs (NE.List e es)
190− return ( docs, pkg, vsns )
191−
192− Nothing ->
193− Task.throw Exit.DiffUnpublished
194
189
195
190
196
191