git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
Fix #1152, support globs in file paths
49da725Phil Freeman
psc-make/Main.hs+4−1
@@ -31,6 +31,7 @@ import Options.Applicative as Opts
31
31
32import System.Exit (exitSuccess, exitFailure)
32import System.Exit (exitSuccess, exitFailure)
33import System.IO (hPutStrLn, stderr)
33import System.IO (hPutStrLn, stderr)
34+import System.FilePath.Glob (glob)
34
35
35import qualified Language.PureScript as P
36import qualified Language.PureScript as P
36import qualified Paths_purescript as Paths
37import qualified Paths_purescript as Paths
@@ -50,8 +51,10 @@ data InputOptions = InputOptions
50 }
51 }
51
52
52compile :: PSCMakeOptions -> IO ()
53compile :: PSCMakeOptions -> IO ()
53−compile (PSCMakeOptions input inputForeign outputDir opts usePrefix) = do
54+compile (PSCMakeOptions inputGlob inputForeignGlob outputDir opts usePrefix) = do
55+ input <- concat <$> mapM glob inputGlob
54 moduleFiles <- readInput (InputOptions input)
56 moduleFiles <- readInput (InputOptions input)
57+ inputForeign <- concat <$> mapM glob inputForeignGlob
55 foreignFiles <- forM inputForeign (\inFile -> (inFile,) <$> readFile inFile)
58 foreignFiles <- forM inputForeign (\inFile -> (inFile,) <$> readFile inFile)
56 case runWriterT (parseInputs moduleFiles foreignFiles) of
59 case runWriterT (parseInputs moduleFiles foreignFiles) of
57 Left errs -> do
60 Left errs -> do
psc/Main.hs+4−1
@@ -34,6 +34,7 @@ import Options.Applicative as Opts
34import System.Directory (createDirectoryIfMissing)
34import System.Directory (createDirectoryIfMissing)
35import System.Exit (exitSuccess, exitFailure)
35import System.Exit (exitSuccess, exitFailure)
36import System.FilePath (takeDirectory)
36import System.FilePath (takeDirectory)
37+import System.FilePath.Glob (glob)
37import System.IO (hPutStrLn, stderr)
38import System.IO (hPutStrLn, stderr)
38
39
39import qualified Data.Map as M
40import qualified Data.Map as M
@@ -66,9 +67,11 @@ runPSC :: P.Options P.Compile -> PSC a -> Either P.MultipleErrors (a, P.Multiple
66runPSC opts rwe = runWriterT (runReaderT rwe opts)
67runPSC opts rwe = runWriterT (runReaderT rwe opts)
67
68
68compile :: PSCOptions -> IO ()
69compile :: PSCOptions -> IO ()
69−compile (PSCOptions input inputForeign opts stdin output externs usePrefix) = do
70+compile (PSCOptions inputGlob inputForeignGlob opts stdin output externs usePrefix) = do
70 let prefix = ["Generated by psc version " ++ showVersion Paths.version | usePrefix]
71 let prefix = ["Generated by psc version " ++ showVersion Paths.version | usePrefix]
72+ input <- concat <$> mapM glob inputGlob
71 moduleFiles <- readInput (InputOptions stdin input)
73 moduleFiles <- readInput (InputOptions stdin input)
74+ inputForeign <- concat <$> mapM glob inputForeignGlob
72 foreignFiles <- forM inputForeign (\inFile -> (inFile,) <$> readFile inFile)
75 foreignFiles <- forM inputForeign (\inFile -> (inFile,) <$> readFile inFile)
73 case runWriterT (parseInputs moduleFiles foreignFiles) of
76 case runWriterT (parseInputs moduleFiles foreignFiles) of
74 Left errs -> do
77 Left errs -> do
purescript.cabal+2−2
@@ -147,7 +147,7 @@ library
147executable psc
147executable psc
148 build-depends: base >=4 && <5, containers -any, directory -any, filepath -any,
148 build-depends: base >=4 && <5, containers -any, directory -any, filepath -any,
149 mtl -any, optparse-applicative >= 0.10.0, parsec -any, purescript -any,
149 mtl -any, optparse-applicative >= 0.10.0, parsec -any, purescript -any,
150− transformers -any
150+ transformers -any, Glob >= 0.7 && < 0.8
151 main-is: Main.hs
151 main-is: Main.hs
152 buildable: True
152 buildable: True
153 hs-source-dirs: psc
153 hs-source-dirs: psc
@@ -157,7 +157,7 @@ executable psc
157executable psc-make
157executable psc-make
158 build-depends: base >=4 && <5, containers -any, directory -any, filepath -any,
158 build-depends: base >=4 && <5, containers -any, directory -any, filepath -any,
159 mtl -any, optparse-applicative >= 0.10.0, parsec -any, purescript -any,
159 mtl -any, optparse-applicative >= 0.10.0, parsec -any, purescript -any,
160− time -any, transformers -any, transformers-compat -any
160+ time -any, transformers -any, transformers-compat -any, Glob >= 0.7 && < 0.8
161 main-is: Main.hs
161 main-is: Main.hs
162 buildable: True
162 buildable: True
163 hs-source-dirs: psc-make
163 hs-source-dirs: psc-make