summaryrefslogtreecommitdiff
path: root/src/GF/Infra/UseIO.hs
diff options
context:
space:
mode:
authorkrasimir <krasimir@chalmers.se>2009-04-30 07:56:22 +0000
committerkrasimir <krasimir@chalmers.se>2009-04-30 07:56:22 +0000
commitae6e8ee401e170224312d78cf43e0e51e49e9976 (patch)
treedea18f1c83277fae2387d236b864458a7e14c774 /src/GF/Infra/UseIO.hs
parentc6ac4801ad271ac2b7c093ce77172930529a1fb1 (diff)
added -gf-lib-path option which overides the value of GF_LIB_PATH
Diffstat (limited to 'src/GF/Infra/UseIO.hs')
-rw-r--r--src/GF/Infra/UseIO.hs18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/GF/Infra/UseIO.hs b/src/GF/Infra/UseIO.hs
index 550554459..ea1ebf53d 100644
--- a/src/GF/Infra/UseIO.hs
+++ b/src/GF/Infra/UseIO.hs
@@ -56,18 +56,20 @@ type FullPath = String
gfLibraryPath = "GF_LIB_PATH"
gfGrammarPathVar = "GF_GRAMMAR_PATH"
-getLibraryPath :: IO FilePath
-getLibraryPath =
- catch
- (getEnv gfLibraryPath)
- (\ex -> getDataDir >>= \path -> return (path </> "lib"))
+getLibraryPath :: Options -> IO FilePath
+getLibraryPath opts =
+ case flag optGFLibPath opts of
+ Just path -> return path
+ Nothing -> catch
+ (getEnv gfLibraryPath)
+ (\ex -> getDataDir >>= \path -> return (path </> "lib"))
-- | extends the search path with the
-- 'gfLibraryPath' and 'gfGrammarPathVar'
-- environment variables. Returns only existing paths.
-extendPathEnv :: [FilePath] -> IO [FilePath]
-extendPathEnv ps = do
- b <- getLibraryPath -- e.g. GF_LIB_PATH
+extendPathEnv :: Options -> [FilePath] -> IO [FilePath]
+extendPathEnv opts ps = do
+ b <- getLibraryPath opts -- e.g. GF_LIB_PATH
s <- catch (getEnv gfGrammarPathVar) (const (return "")) -- e.g. GF_GRAMMAR_PATH
let ss = ps ++ splitSearchPath s
liftM concat $ mapM allSubdirs $ ss ++ [b </> s | s <- ss ++ ["prelude"]]