@@ -43,6 +43,7 @@ import System.Console.Haskeline
43import System.Directory (doesFileExist, findExecutable, getHomeDirectory, getCurrentDirectory)
43import System.Directory (doesFileExist, findExecutable, getHomeDirectory, getCurrentDirectory)
44import System.Exit
44import System.Exit
45import System.FilePath (pathSeparator, (</>), isPathSeparator)
45import System.FilePath (pathSeparator, (</>), isPathSeparator)
46+import System.FilePath.Glob (glob)
46import System.Process (readProcessWithExitCode)
47import System.Process (readProcessWithExitCode)
48import qualified Language.PureScript as P
49import qualified Language.PureScript as P
@@ -490,19 +491,21 @@ consoleIsDefined = any ((== P.ModuleName (map P.ProperName [ "Control", "Monad",
490loop :: PSCiOptions -> IO ()
491loop :: PSCiOptions -> IO ()
491loop PSCiOptions{..} = do
492loop PSCiOptions{..} = do
492 config <- loadUserConfig
493 config <- loadUserConfig
494+ inputFiles <- concat <$> mapM glob psciInputFile
495+ foreignFiles <- concat <$> mapM glob psciForeignInputFiles
493− modulesOrFirstError <- loadAllModules psciInputFile
496+ modulesOrFirstError <- loadAllModules inputFiles
494 case modulesOrFirstError of
497 case modulesOrFirstError of
495 Left errs -> putStrLn (P.prettyPrintMultipleErrors False errs) >> exitFailure
498 Left errs -> putStrLn (P.prettyPrintMultipleErrors False errs) >> exitFailure
496 Right modules -> do
499 Right modules -> do
497 historyFilename <- getHistoryFilename
500 historyFilename <- getHistoryFilename
498 let settings = defaultSettings { historyFile = Just historyFilename }
501 let settings = defaultSettings { historyFile = Just historyFilename }
499 foreignsOrError <- runMake $ do
502 foreignsOrError <- runMake $ do
500− foreignFiles <- forM psciForeignInputFiles (\inFile -> (inFile,) <$> makeIO (const (P.SimpleErrorWrapper $ P.CannotReadFile inFile)) (readFile inFile))
503+ foreignFilesContent <- forM foreignFiles (\inFile -> (inFile,) <$> makeIO (const (P.SimpleErrorWrapper $ P.CannotReadFile inFile)) (readFile inFile))
501− P.parseForeignModulesFromFiles foreignFiles
504+ P.parseForeignModulesFromFiles foreignFilesContent
502 case foreignsOrError of
505 case foreignsOrError of
503 Left errs -> putStrLn (P.prettyPrintMultipleErrors False errs) >> exitFailure
506 Left errs -> putStrLn (P.prettyPrintMultipleErrors False errs) >> exitFailure
504 Right foreigns ->
507 Right foreigns ->
505− flip evalStateT (PSCiState psciInputFile [] modules foreigns [] psciInputNodeFlags) . runInputT (setComplete completion settings) $ do
508+ flip evalStateT (PSCiState inputFiles [] modules foreigns [] psciInputNodeFlags) . runInputT (setComplete completion settings) $ do
506 outputStrLn prologueMessage
509 outputStrLn prologueMessage
507 traverse_ (mapM_ (runPSCI . handleCommand)) config
510 traverse_ (mapM_ (runPSCI . handleCommand)) config
508 modules' <- lift $ gets psciLoadedModules
511 modules' <- lift $ gets psciLoadedModules