on master help sign in
make small improvements in Publish.hs
10c4c3eEvan Czaplicki
terminal/src/Publish.hs+11−19
@@ -71,22 +71,12 @@ data Env =
71
71
72getEnv :: Task.Task Exit.Publish Env
72getEnv :: Task.Task Exit.Publish Env
73getEnv =
73getEnv =
74− do maybeRoot <- Task.io $ Stuff.findRoot
74+ do root <- Task.mio Exit.PublishNoOutline $ Stuff.findRoot
75− case maybeRoot of
76− Nothing ->
77− Task.throw Exit.PublishNoOutline
78−
79− Just root ->
80− do cache <- Task.io $ Stuff.getPackageCache
75+ cache <- Task.io $ Stuff.getPackageCache
81− manager <- Task.io $ Http.getManager
76+ manager <- Task.io $ Http.getManager
82− registry <- Task.eio Exit.PublishMustHaveLatestRegistry $ Registry.latest manager cache
77+ registry <- Task.eio Exit.PublishMustHaveLatestRegistry $ Registry.latest manager cache
83− outlineResult <- Task.io $ Outline.read root
78+ outline <- Task.eio Exit.PublishBadOutline $ Outline.read root
84− case outlineResult of
85− Right outline ->
86− return $ Env root cache manager registry outline
79+ return $ Env root cache manager registry outline
87−
88− Left problem ->
89− Task.throw $ Exit.PublishBadOutline problem
90
80
91
81
92
82
@@ -266,11 +256,13 @@ verifyNoChanges git commitHash vsn =
266verifyZip :: Env -> Pkg.Name -> V.Version -> Task.Task Exit.Publish Http.Sha
256verifyZip :: Env -> Pkg.Name -> V.Version -> Task.Task Exit.Publish Http.Sha
267verifyZip (Env root _ manager _ _) pkg vsn =
257verifyZip (Env root _ manager _ _) pkg vsn =
268 withTempDir root $ \prepublishDir ->
258 withTempDir root $ \prepublishDir ->
259+ do let url = toZipUrl pkg vsn
260+
269− do (sha, archive) <-
261+ (sha, archive) <-
270 reportDownloadCheck $
262 reportDownloadCheck $
271− Http.getArchive manager (toZipUrl pkg vsn)
263+ Http.getArchive manager url
272 Exit.PublishCannotGetZip
264 Exit.PublishCannotGetZip
273− Exit.PublishCannotDecodeZip
265+ (Exit.PublishCannotDecodeZip url)
274 (return . Right)
266 (return . Right)
275
267
276 Task.io $ File.writePackage prepublishDir archive
268 Task.io $ File.writePackage prepublishDir archive