@@ -260,11 +260,16 @@ verifyZip (Env root _ manager _ _) pkg vsn =
260260
261261 reportZipBuildCheck $
262262 Dir.withCurrentDirectory prepublishDir $
263− error "TODO Build.generateDocs"
263+ verifyZipBuild prepublishDir
264264
265265 return sha
266266
267267
268+toZipUrl :: Pkg.Name -> V.Version -> String
269+toZipUrl pkg vsn =
270+ "https://github.com/" ++ Pkg.toUrl pkg ++ "/zipball/" ++ V.toChars vsn ++ "/"
271+
272+
268273withTempDir :: FilePath -> (FilePath -> Task.Task x a) -> Task.Task x a
269274withTempDir root callback =
270275 let
@@ -277,9 +282,23 @@ withTempDir root callback =
277282 (Task.run (callback dir))
278283
279284
280−toZipUrl :: Pkg.Name -> V.Version -> String
281−toZipUrl pkg vsn =
282− "https://github.com/" ++ Pkg.toUrl pkg ++ "/zipball/" ++ V.toChars vsn ++ "/"
285+verifyZipBuild :: FilePath -> IO (Either Exit.Publish ())
286+verifyZipBuild root =
287+ Task.run $
288+ do details@(Details.Details _ outline _ _ _) <-
289+ Task.eio Exit.PublishZipBadDetails $
290+ Details.load Reporting.silent root
291+
292+ exposed <-
293+ case outline of
294+ Details.ValidApp _ -> Task.throw Exit.PublishZipApplication
295+ Details.ValidPkg _ [] -> Task.throw Exit.PublishZipNoExposed
296+ Details.ValidPkg _ (e:es) -> return (NE.List e es)
297+
298+ _ <- Task.eio Exit.PublishZipBuildProblem $
299+ Build.fromExposed Reporting.silent root details Build.KeepDocs exposed
300+
301+ return ()
283302
284303
285304