From 16aa3bbbc101987c56b5338523a2b8f31cf9b079 Mon Sep 17 00:00:00 2001 From: bringert Date: Wed, 13 Sep 2006 11:46:04 +0000 Subject: [PATCH] transferc now uses env var TRANSFER_PATH to locate imports. --- transfer/transferc.hs | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/transfer/transferc.hs b/transfer/transferc.hs index a363ff75c..7a88d8e3a 100644 --- a/transfer/transferc.hs +++ b/transfer/transferc.hs @@ -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 [-i ... ]] "