diff options
| author | krasimir <krasimir@chalmers.se> | 2009-04-30 07:56:22 +0000 |
|---|---|---|
| committer | krasimir <krasimir@chalmers.se> | 2009-04-30 07:56:22 +0000 |
| commit | ae6e8ee401e170224312d78cf43e0e51e49e9976 (patch) | |
| tree | dea18f1c83277fae2387d236b864458a7e14c774 /src/GF/Infra/UseIO.hs | |
| parent | c6ac4801ad271ac2b7c093ce77172930529a1fb1 (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.hs | 18 |
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"]] |
