git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
Only try "bower.cmd" on Windows
8e6a455Harry Garrood
src/Language/PureScript/Publish.hs+5−2
@@ -45,6 +45,7 @@ import System.Directory (doesFileExist, findExecutable)
45import System.Process (readProcess)
45import System.Process (readProcess)
46import System.Exit (exitFailure)
46import System.Exit (exitFailure)
47import qualified System.FilePath.Glob as Glob
47import qualified System.FilePath.Glob as Glob
48+import qualified System.Info
48
49
49import Web.Bower.PackageMeta (PackageMeta(..), BowerError(..), PackageName,
50import Web.Bower.PackageMeta (PackageMeta(..), BowerError(..), PackageName,
50 runPackageName, parsePackageName, Repository(..))
51 runPackageName, parsePackageName, Repository(..))
@@ -255,9 +256,11 @@ getResolvedDependencies declaredDeps = do
255findBowerExecutable :: PrepareM String
256findBowerExecutable :: PrepareM String
256findBowerExecutable = do
257findBowerExecutable = do
257 mname <- liftIO . runMaybeT . msum . map (MaybeT . findExecutable) $ names
258 mname <- liftIO . runMaybeT . msum . map (MaybeT . findExecutable) $ names
258− maybe (userError BowerExecutableNotFound) return mname
259+ maybe (userError (BowerExecutableNotFound names)) return mname
259 where
260 where
261+ names = case System.Info.os of
260− names = ["bower", "bower.cmd"]
262+ "mingw32" -> ["bower", "bower.cmd"]
263+ _ -> ["bower"]
261
264
262-- | Extracts all dependencies and their versions from
265-- | Extracts all dependencies and their versions from
263-- `bower list --json --offline`
266-- `bower list --json --offline`
src/Language/PureScript/Publish/ErrorsWarnings.hs+6−4
@@ -21,7 +21,7 @@ import Data.Version
21import Data.Maybe
21import Data.Maybe
22import Data.Monoid
22import Data.Monoid
23import Data.Foldable (foldMap)
23import Data.Foldable (foldMap)
24−import Data.List (intersperse)
24+import Data.List (intersperse, intercalate)
25import Data.List.NonEmpty (NonEmpty(..))
25import Data.List.NonEmpty (NonEmpty(..))
26import qualified Data.List.NonEmpty as NonEmpty
26import qualified Data.List.NonEmpty as NonEmpty
27
27
@@ -53,7 +53,7 @@ data PackageWarning
53-- | An error that should be fixed by the user.
53-- | An error that should be fixed by the user.
54data UserError
54data UserError
55 = BowerJSONNotFound
55 = BowerJSONNotFound
56− | BowerExecutableNotFound
56+ | BowerExecutableNotFound [String] -- list of executable names tried
57 | CouldntParseBowerJSON (ParseError BowerError)
57 | CouldntParseBowerJSON (ParseError BowerError)
58 | BowerJSONNameMissing
58 | BowerJSONNameMissing
59 | TagMustBeCheckedOut
59 | TagMustBeCheckedOut
@@ -122,11 +122,13 @@ displayUserError e = case e of
122 [ "The bower.json file was not found. Please create one, or run "
122 [ "The bower.json file was not found. Please create one, or run "
123 , "`pulp init`."
123 , "`pulp init`."
124 ])
124 ])
125− BowerExecutableNotFound ->
125+ BowerExecutableNotFound names ->
126 para (concat
126 para (concat
127− [ "The \"bower\" executable was not found (nor \"bower.cmd\"). Please"
127+ [ "The Bower executable was not found (tried: ", format names, "). Please"
128 , " ensure that bower is installed and on your PATH."
128 , " ensure that bower is installed and on your PATH."
129 ])
129 ])
130+ where
131+ format = intercalate ", " . map show
130 CouldntParseBowerJSON err ->
132 CouldntParseBowerJSON err ->
131 vcat
133 vcat
132 [ successivelyIndented
134 [ successivelyIndented