@@ -24,6 +24,7 @@ import Control.Monad
24import Control.Monad.Error.Class (MonadError(..))
24import Control.Monad.Error.Class (MonadError(..))
25import Control.Monad.Writer.Strict
25import Control.Monad.Writer.Strict
27+import Data.List (isSuffixOf, partition)
27import Data.Version (showVersion)
28import Data.Version (showVersion)
28import qualified Data.Map as M
29import qualified Data.Map as M
@@ -56,9 +57,10 @@ compile (PSCMakeOptions inputGlob inputForeignGlob outputDir opts usePrefix) = d
56 when (null input) $ do
57 when (null input) $ do
57 hPutStrLn stderr "psc: No input files."
58 hPutStrLn stderr "psc: No input files."
58 exitFailure
59 exitFailure
60+ let (jsFiles, pursFiles) = partition (isSuffixOf ".js") input
59− moduleFiles <- readInput (InputOptions input)
61+ moduleFiles <- readInput (InputOptions pursFiles)
60 inputForeign <- globWarningOnMisses warnFileTypeNotFound inputForeignGlob
62 inputForeign <- globWarningOnMisses warnFileTypeNotFound inputForeignGlob
61− foreignFiles <- forM inputForeign (\inFile -> (inFile,) <$> readFile inFile)
63+ foreignFiles <- forM (inputForeign ++ jsFiles) (\inFile -> (inFile,) <$> readFile inFile)
62 case runWriterT (parseInputs moduleFiles foreignFiles) of
64 case runWriterT (parseInputs moduleFiles foreignFiles) of
63 Left errs -> do
65 Left errs -> do
64 hPutStrLn stderr (P.prettyPrintMultipleErrors (P.optionsVerboseErrors opts) errs)
66 hPutStrLn stderr (P.prettyPrintMultipleErrors (P.optionsVerboseErrors opts) errs)
@@ -79,7 +81,7 @@ compile (PSCMakeOptions inputGlob inputForeignGlob outputDir opts usePrefix) = d
79 exitSuccess
81 exitSuccess
81warnFileTypeNotFound :: String -> IO ()
83warnFileTypeNotFound :: String -> IO ()
82−warnFileTypeNotFound = hPutStrLn stderr . ((++) "psc: No files found using pattern: ")
84+warnFileTypeNotFound = hPutStrLn stderr . ("psc: No files found using pattern: " ++)
84globWarningOnMisses :: (String -> IO ()) -> [FilePath] -> IO [FilePath]
86globWarningOnMisses :: (String -> IO ()) -> [FilePath] -> IO [FilePath]
85globWarningOnMisses warn = concatMapM globWithWarning
87globWarningOnMisses warn = concatMapM globWithWarning