@@ -32,6 +32,7 @@ import Options.Applicative as Opts
33import System.Exit (exitSuccess, exitFailure)
33import System.Exit (exitSuccess, exitFailure)
34import System.IO (hPutStrLn, stderr)
34import System.IO (hPutStrLn, stderr)
35import System.FilePath.Glob (glob)
36import System.FilePath.Glob (glob)
37import qualified Language.PureScript as P
38import qualified Language.PureScript as P
@@ -60,7 +61,7 @@ compile (PSCMakeOptions inputGlob inputForeignGlob outputDir opts usePrefix) = d
60 let (jsFiles, pursFiles) = partition (isSuffixOf ".js") input
61 let (jsFiles, pursFiles) = partition (isSuffixOf ".js") input
61 moduleFiles <- readInput (InputOptions pursFiles)
62 moduleFiles <- readInput (InputOptions pursFiles)
62 inputForeign <- globWarningOnMisses warnFileTypeNotFound inputForeignGlob
63 inputForeign <- globWarningOnMisses warnFileTypeNotFound inputForeignGlob
63− foreignFiles <- forM (inputForeign ++ jsFiles) (\inFile -> (inFile,) <$> readFile inFile)
64+ foreignFiles <- forM (inputForeign ++ jsFiles) (\inFile -> (inFile,) <$> readUTF8File inFile)
64 case runWriterT (parseInputs moduleFiles foreignFiles) of
65 case runWriterT (parseInputs moduleFiles foreignFiles) of
65 Left errs -> do
66 Left errs -> do
66 hPutStrLn stderr (P.prettyPrintMultipleErrors (P.optionsVerboseErrors opts) errs)
67 hPutStrLn stderr (P.prettyPrintMultipleErrors (P.optionsVerboseErrors opts) errs)
@@ -93,7 +94,7 @@ globWarningOnMisses warn = concatMapM globWithWarning
93 concatMapM f = liftM concat . mapM f
94 concatMapM f = liftM concat . mapM f
95readInput :: InputOptions -> IO [(Either P.RebuildPolicy FilePath, String)]
96readInput :: InputOptions -> IO [(Either P.RebuildPolicy FilePath, String)]
96−readInput InputOptions{..} = forM ioInputFiles $ \inFile -> (Right inFile, ) <$> readFile inFile
97+readInput InputOptions{..} = forM ioInputFiles $ \inFile -> (Right inFile, ) <$> readUTF8File inFile
98parseInputs :: (Functor m, Applicative m, MonadError P.MultipleErrors m, MonadWriter P.MultipleErrors m)
99parseInputs :: (Functor m, Applicative m, MonadError P.MultipleErrors m, MonadWriter P.MultipleErrors m)
99 => [(Either P.RebuildPolicy FilePath, String)]
100 => [(Either P.RebuildPolicy FilePath, String)]
@@ -178,6 +179,7 @@ pscMakeOptions = PSCMakeOptions <$> many inputFile
178 <*> options
179 <*> options
179 <*> (not <$> noPrefix)
180 <*> (not <$> noPrefix)
181main :: IO ()
183main :: IO ()
182main = execParser opts >>= compile
184main = execParser opts >>= compile