on master help sign in
add error messages for installing unknown packages
4e707f3Evan Czaplicki
builder/src/Reporting/Exit.hs+30−7
@@ -555,7 +555,8 @@ publishToReport publish =
555 ++ V.toChars new ++ " really does come next"
555 ++ V.toChars new ++ " really does come next"
556
556
557 PublishCannotRegister httpError ->
557 PublishCannotRegister httpError ->
558− error "TODO PublishCannotRegister" httpError
558+ toHttpErrorReport "PROBLEM PUBLISHING PACKAGE" httpError $
559+ "I need to send information about your package to the package website"
559
560
560 PublishNoGit ->
561 PublishNoGit ->
561 Help.report "NO GIT" Nothing
562 Help.report "NO GIT" Nothing
@@ -676,8 +677,8 @@ data Install
676 | InstallNoOnlineSolution
677 | InstallNoOnlineSolution
677 | InstallNoOfflineSolution
678 | InstallNoOfflineSolution
678 | InstallHadSolverTrouble Solver
679 | InstallHadSolverTrouble Solver
679− | InstallUnknownPackageOnline [Pkg.Name]
680+ | InstallUnknownPackageOnline Pkg.Name [Pkg.Name]
680− | InstallUnknownPackageOffline [Pkg.Name]
681+ | InstallUnknownPackageOffline Pkg.Name [Pkg.Name]
681 | InstallHasBadDetails Details
682 | InstallHasBadDetails Details
682
683
683
684
@@ -730,11 +731,33 @@ installToReport exit =
730 InstallHadSolverTrouble solver ->
731 InstallHadSolverTrouble solver ->
731 error "TODO InstallHadSolverTrouble" solver
732 error "TODO InstallHadSolverTrouble" solver
732
733
733− InstallUnknownPackageOnline suggestions ->
734+ InstallUnknownPackageOnline pkg suggestions ->
734− error "TODO InstallUnknownPackageOnline" suggestions
735+ Help.docReport "UNKNOWN PACKAGE" Nothing
736+ (
737+ D.fillSep
738+ ["I","cannot","find","a","package","named",D.red (D.fromPackage pkg) <> "."]
739+ )
740+ [ D.reflow $
741+ "I looked through https://package.elm-lang.org for packages with similar names\
742+ \ and found these:"
743+ , D.indent 4 $ D.dullyellow $ D.vcat $ map D.fromPackage suggestions
744+ , D.reflow $ "Maybe you want one of these instead?"
745+ ]
735
746
736− InstallUnknownPackageOffline suggestions ->
747+ InstallUnknownPackageOffline pkg suggestions ->
737− error "TODO InstallUnknownPackageOffline" suggestions
748+ Help.docReport "UNKNOWN PACKAGE" Nothing
749+ (
750+ D.fillSep
751+ ["I","cannot","find","a","package","named",D.red (D.fromPackage pkg) <> "."]
752+ )
753+ [ D.reflow $
754+ "I could not connect to https://package.elm-lang.org though, so new packages may\
755+ \ have been published since I last updated my local cache of package names."
756+ , D.reflow $
757+ "Looking through the locally cached names, the closest ones are:"
758+ , D.indent 4 $ D.dullyellow $ D.vcat $ map D.fromPackage suggestions
759+ , D.reflow $ "Maybe you want one of these instead?"
760+ ]
738
761
739 InstallHasBadDetails _ ->
762 InstallHasBadDetails _ ->
740 error "TODO InstallHasBadDetails"
763 error "TODO InstallHasBadDetails"
terminal/src/Install.hs+4−4
@@ -203,8 +203,8 @@ makeAppPlan (Solver.Env cache _ connection registry) pkg outline@(Outline.AppOut
203 case Registry.getVersions' pkg registry of
203 case Registry.getVersions' pkg registry of
204 Left suggestions ->
204 Left suggestions ->
205 case connection of
205 case connection of
206− Solver.Online _ -> Task.throw (Exit.InstallUnknownPackageOnline suggestions)
206+ Solver.Online _ -> Task.throw (Exit.InstallUnknownPackageOnline pkg suggestions)
207− Solver.Offline -> Task.throw (Exit.InstallUnknownPackageOffline suggestions)
207+ Solver.Offline -> Task.throw (Exit.InstallUnknownPackageOffline pkg suggestions)
208
208
209 Right _ ->
209 Right _ ->
210 do result <- Task.io $ Solver.addToApp cache connection registry pkg outline
210 do result <- Task.io $ Solver.addToApp cache connection registry pkg outline
@@ -245,8 +245,8 @@ makePkgPlan (Solver.Env cache _ connection registry) pkg outline@(Outline.PkgOut
245 case Registry.getVersions' pkg registry of
245 case Registry.getVersions' pkg registry of
246 Left suggestions ->
246 Left suggestions ->
247 case connection of
247 case connection of
248− Solver.Online _ -> Task.throw (Exit.InstallUnknownPackageOnline suggestions)
248+ Solver.Online _ -> Task.throw (Exit.InstallUnknownPackageOnline pkg suggestions)
249− Solver.Offline -> Task.throw (Exit.InstallUnknownPackageOffline suggestions)
249+ Solver.Offline -> Task.throw (Exit.InstallUnknownPackageOffline pkg suggestions)
250
250
251 Right (Registry.KnownVersions _ _) ->
251 Right (Registry.KnownVersions _ _) ->
252 do let old = Map.union deps test
252 do let old = Map.union deps test