git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
Properly encode UTF-8 String into Bytestring
af2bd8cKonstantin Zudov
src/Language/PureScript/Publish.hs+4−2
@@ -23,7 +23,6 @@ import Prelude hiding (userError)
23
23
24import Data.Maybe
24import Data.Maybe
25import Data.Char (isSpace)
25import Data.Char (isSpace)
26−import Data.String (fromString)
27import Data.List (stripPrefix, isSuffixOf, (\\), nubBy)
26import Data.List (stripPrefix, isSuffixOf, (\\), nubBy)
28import Data.List.Split (splitOn)
27import Data.List.Split (splitOn)
29import Data.List.NonEmpty (NonEmpty(..))
28import Data.List.NonEmpty (NonEmpty(..))
@@ -32,6 +31,8 @@ import Data.Function (on)
32import Safe (headMay)
31import Safe (headMay)
33import Data.Aeson.BetterErrors
32import Data.Aeson.BetterErrors
34import qualified Data.Text as T
33import qualified Data.Text as T
34+import qualified Data.Text.Lazy as TL
35+import qualified Data.Text.Lazy.Encoding as TL
35
36
36#if __GLASGOW_HASKELL__ < 710
37#if __GLASGOW_HASKELL__ < 710
37import Control.Applicative
38import Control.Applicative
@@ -245,7 +246,7 @@ data DependencyStatus
245getResolvedDependencies :: [PackageName] -> PrepareM [(PackageName, Version)]
246getResolvedDependencies :: [PackageName] -> PrepareM [(PackageName, Version)]
246getResolvedDependencies declaredDeps = do
247getResolvedDependencies declaredDeps = do
247 bower <- findBowerExecutable
248 bower <- findBowerExecutable
248− depsBS <- fromString <$> readProcess' bower ["list", "--json", "--offline"] ""
249+ depsBS <- packUtf8 <$> readProcess' bower ["list", "--json", "--offline"] ""
249
250
250 -- Check for undeclared dependencies
251 -- Check for undeclared dependencies
251 toplevels <- catchJSON (parse asToplevelDependencies depsBS)
252 toplevels <- catchJSON (parse asToplevelDependencies depsBS)
@@ -255,6 +256,7 @@ getResolvedDependencies declaredDeps = do
255 handleDeps deps
256 handleDeps deps
256
257
257 where
258 where
259+ packUtf8 = TL.encodeUtf8 . TL.pack
258 catchJSON = flip catchLeft (internalError . JSONError FromBowerList)
260 catchJSON = flip catchLeft (internalError . JSONError FromBowerList)
259
261
260findBowerExecutable :: PrepareM String
262findBowerExecutable :: PrepareM String