git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
Add globbing to psci
commitd157632ebfa1c9c36e93fd4eb157e5286f14e011 authorPhil Freeman <paf31@cantab.net> dateWed 10 Jun 2015, 17:07 (11 years ago) parent49da725
2 files changed+10−6
psci/PSCi.hs+7−4 purescript.cabal+3−2
psci/PSCi.hs+7−4
@@ -43,6 +43,7 @@ import System.Console.Haskeline
4343import System.Directory (doesFileExist, findExecutable, getHomeDirectory, getCurrentDirectory)
4444import System.Exit
4545import System.FilePath (pathSeparator, (</>), isPathSeparator)
46+import System.FilePath.Glob (glob)
4647import System.Process (readProcessWithExitCode)
4748
4849import qualified Language.PureScript as P
@@ -490,19 +491,21 @@ consoleIsDefined = any ((== P.ModuleName (map P.ProperName [ "Control", "Monad",
490491loop :: PSCiOptions -> IO ()
491492loop PSCiOptions{..} = do
492493 config <- loadUserConfig
493− modulesOrFirstError <- loadAllModules psciInputFile
494+ inputFiles <- concat <$> mapM glob psciInputFile
495+ foreignFiles <- concat <$> mapM glob psciForeignInputFiles
496+ modulesOrFirstError <- loadAllModules inputFiles
494497 case modulesOrFirstError of
495498 Left errs -> putStrLn (P.prettyPrintMultipleErrors False errs) >> exitFailure
496499 Right modules -> do
497500 historyFilename <- getHistoryFilename
498501 let settings = defaultSettings { historyFile = Just historyFilename }
499502 foreignsOrError <- runMake $ do
500− foreignFiles <- forM psciForeignInputFiles (\inFile -> (inFile,) <$> makeIO (const (P.SimpleErrorWrapper $ P.CannotReadFile inFile)) (readFile inFile))
501− P.parseForeignModulesFromFiles foreignFiles
503+ foreignFilesContent <- forM foreignFiles (\inFile -> (inFile,) <$> makeIO (const (P.SimpleErrorWrapper $ P.CannotReadFile inFile)) (readFile inFile))
504+ P.parseForeignModulesFromFiles foreignFilesContent
502505 case foreignsOrError of
503506 Left errs -> putStrLn (P.prettyPrintMultipleErrors False errs) >> exitFailure
504507 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
506509 outputStrLn prologueMessage
507510 traverse_ (mapM_ (runPSCI . handleCommand)) config
508511 modules' <- lift $ gets psciLoadedModules
purescript.cabal+3−2
@@ -168,7 +168,7 @@ executable psci
168168 build-depends: base >=4 && <5, containers -any, directory -any, filepath -any,
169169 mtl -any, optparse-applicative >= 0.10.0, parsec -any,
170170 haskeline >= 0.7.0.0, purescript -any, transformers -any,
171− transformers-compat -any, process -any, time -any
171+ transformers-compat -any, process -any, time -any, Glob -any
172172
173173 main-is: Main.hs
174174 buildable: True
@@ -233,7 +233,8 @@ test-suite psci-tests
233233 build-depends: base >=4 && <5, containers -any, directory -any, filepath -any,
234234 mtl -any, optparse-applicative >= 0.10.0, parsec -any,
235235 haskeline >= 0.7.0.0, purescript -any, transformers -any,
236− transformers-compat -any, process -any, HUnit -any, time -any
236+ transformers-compat -any, process -any, HUnit -any, time -any,
237+ Glob -any
237238 type: exitcode-stdio-1.0
238239 main-is: Main.hs
239240 buildable: True