git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
Better bower.json error reporting for psc-publish

Fixes #1560 - Use the functions for displaying errors from bower-json and aeson-better-errors instead of using the Show instance - Rename the inaccurately named `CouldntParseBowerJson` constructor.

commit7b71cab8238bfc7224f4360a9cdeed45ab946623 authorHarry Garrood <harry@garrood.me> dateSat 14 Nov 2015, 01:29 (11 years ago) parent84e513d
2 files changed+8−9
src/Language/PureScript/Publish.hs+1−1 src/Language/PureScript/Publish/ErrorsWarnings.hs+7−8
src/Language/PureScript/Publish.hs+1−1
@@ -122,7 +122,7 @@ preparePackage' opts = do
122122 requireCleanWorkingTree
123123
124124 pkgMeta <- liftIO (Bower.decodeFile "bower.json")
125− >>= flip catchLeft (userError . CouldntParseBowerJSON)
125+ >>= flip catchLeft (userError . CouldntDecodeBowerJSON)
126126 (pkgVersionTag, pkgVersion) <- publishGetVersion opts
127127 pkgGithub <- getBowerInfo pkgMeta
128128 (pkgBookmarks, pkgModules) <- getModulesAndBookmarks
src/Language/PureScript/Publish/ErrorsWarnings.hs+7−8
@@ -29,7 +29,7 @@ import qualified Data.List.NonEmpty as NonEmpty
2929import qualified Data.Text as T
3030
3131import Control.Exception (IOException)
32−import Web.Bower.PackageMeta (BowerError, PackageName, runPackageName)
32+import Web.Bower.PackageMeta (BowerError, PackageName, runPackageName, showBowerError)
3333import qualified Web.Bower.PackageMeta as Bower
3434
3535import qualified Language.PureScript as P
@@ -55,7 +55,7 @@ data PackageWarning
5555data UserError
5656 = BowerJSONNotFound
5757 | BowerExecutableNotFound [String] -- list of executable names tried
58− | CouldntParseBowerJSON (ParseError BowerError)
58+ | CouldntDecodeBowerJSON (ParseError BowerError)
5959 | TagMustBeCheckedOut
6060 | AmbiguousVersions [Version] -- Invariant: should contain at least two elements
6161 | BadRepositoryField RepositoryFieldError
@@ -129,13 +129,12 @@ displayUserError e = case e of
129129 ])
130130 where
131131 format = intercalate ", " . map show
132− CouldntParseBowerJSON err ->
132+ CouldntDecodeBowerJSON err ->
133133 vcat
134− [ successivelyIndented
135− [ "The bower.json file could not be parsed as JSON:"
136− , "aeson reported: " ++ show err
137− ]
138− , para "Please ensure that your bower.json file is valid JSON."
134+ [ para "There was a problem with your bower.json file:"
135+ , indented (vcat (map (para . T.unpack) (displayError showBowerError err)))
136+ , spacer
137+ , para "Please ensure that your bower.json file is valid."
139138 ]
140139 TagMustBeCheckedOut ->
141140 vcat