on master help sign in
shuffle diff logic to report about problems fetching versions first

rather than making people get everything in order locally, only to find out that they cannot even run a diff in the first place

commitdf7839bf42c614892546dfe30744f4bdba6da902 authorEvan Czaplicki <evancz@users.noreply.github.com> dateThu 13 Jun 2019, 18:04 (7 years ago) parent733a763
1 file changed+14−19
terminal/src/Diff.hs+14−19
terminal/src/Diff.hs+14−19
@@ -72,7 +72,7 @@ getEnv =
7272 do maybeRoot <- Task.io $ Stuff.findRoot
7373 cache <- Task.io $ Stuff.getPackageCache
7474 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
7676 return (Env maybeRoot cache manager registry)
7777
7878
@@ -104,13 +104,15 @@ diff env@(Env _ _ _ registry) args =
104104 writeDiff oldDocs newDocs
105105
106106 CodeVsLatest ->
107− do (newDocs, name, vsns) <- generateDocs env
107+ do (name, vsns) <- readOutline env
108108 oldDocs <- getLatestDocs env name vsns
109+ newDocs <- generateDocs env
109110 writeDiff oldDocs newDocs
110111
111112 CodeVsExactly version ->
112− do (newDocs, name, vsns) <- generateDocs env
113+ do (name, vsns) <- readOutline env
113114 oldDocs <- getDocs env name vsns version
115+ newDocs <- generateDocs env
114116 writeDiff oldDocs newDocs
115117
116118
@@ -161,8 +163,8 @@ readOutline (Env maybeRoot _ _ registry) =
161163-- GENERATE DOCS
162164
163165
164−generateDocs :: Env -> Task (Docs.Documentation, Pkg.Name, Registry.KnownVersions)
165−generateDocs (Env maybeRoot _ _ registry) =
166+generateDocs :: Env -> Task Docs.Documentation
167+generateDocs (Env maybeRoot _ _ _) =
166168 case maybeRoot of
167169 Nothing ->
168170 Task.throw $ Exit.DiffNoOutline
@@ -177,20 +179,13 @@ generateDocs (Env maybeRoot _ _ registry) =
177179 Task.throw $ Exit.DiffApplication
178180
179181 Details.ValidPkg pkg exposed ->
180− case Registry.getVersions pkg registry of
181− Just vsns ->
182− case exposed of
183− [] ->
184− Task.throw Exit.DiffNoExposed
185−
186− e:es ->
187− do docs <-
188− Task.eio Exit.DiffBadBuild $
189− 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
182+ case exposed of
183+ [] ->
184+ Task.throw $ Exit.DiffNoExposed pkg
185+
186+ e:es ->
187+ Task.eio Exit.DiffBadBuild $
188+ Build.fromExposed Reporting.silent root details Build.KeepDocs (NE.List e es)
194189
195190
196191