1
0
forked from GitHub/gf-core

transferc now uses env var TRANSFER_PATH to locate imports.

This commit is contained in:
bringert
2006-09-13 11:46:04 +00:00
parent ba950aab14
commit f41c8fd2fc

View File

@@ -12,14 +12,28 @@ die s = do
hPutStrLn stderr s
exitFailure
getPath :: IO [String]
getPath = do env <- getEnvironment
return $ case lookup "TRANSFER_PATH" env of
Nothing -> []
Just p -> splitBy (==':') p
-- Modified version of a function which is originally
-- Copyright Bryn Keller
splitBy :: (a -> Bool) -> [a] -> [[a]]
splitBy _ [] = []
splitBy f list = first : splitBy f (dropWhile f rest)
where (first, rest) = break f list
main :: IO ()
main = do
args <- getArgs
let (flags,files) = partition ("-" `isPrefixOf`) args
path = [ p | ('-':'i':p) <- flags ]
argPath = [ p | ('-':'i':p) <- flags ]
envPath <- getPath
case files of
[f] -> do
cf <- compileFile path f
cf <- compileFile (argPath ++ envPath) f
putStrLn $ "Wrote " ++ cf
return ()
_ -> die "Usage: transferc [-i<path> [-i<path> ... ]] <file>"