on master help sign in
Make fetching of data files more robust. Fixes #3544

`getDataFileName` didn't take into account possible changes in Idris' datadir that were not cabal made. This fix adds a more robust variant of `getDataFileName`.

commitd1bc3fa3c704bc233f0036ea13204d7790d26477 authorJan de Muijnck-Hughes <jfdm@st-andrews.ac.uk> dateMon 5 Dec 2016, 11:17 (10 years ago) parent01aff97
3 files changed+13−3
src/IRTS/System.hs+6−1 src/Idris/IdrisDoc.hs+2−2 src/Idris/Info.hs+5
src/IRTS/System.hs+6−1
@@ -6,7 +6,7 @@ License : BSD3
66Maintainer : The Idris Community.
77-}
88{-# LANGUAGE CPP #-}
9−module IRTS.System( getDataFileName
9+module IRTS.System( getIdrisDataFileByName
1010 , getCC
1111 , getLibFlags
1212 , getIdrisDataDir
@@ -42,6 +42,11 @@ getIdrisDataDir = do
4242 return ddir
4343 Just ddir -> return ddir
4444
45+getIdrisDataFileByName :: String -> IO FilePath
46+getIdrisDataFileByName fn = do
47+ dir <- getIdrisDataDir
48+ return $ dir </> fn
49+
4550overrideIdrisSubDirWith :: String -- ^ Sub directory in `getDataDir` location.
4651 -> String -- ^ Environment variable to get new location from.
4752 -> IO FilePath
src/Idris/IdrisDoc.hs+2−2
@@ -19,7 +19,7 @@ import Idris.Docs
1919import Idris.Docstrings (nullDocstring)
2020import qualified Idris.Docstrings as Docstrings
2121import Idris.Parser.Helpers (opChars)
22−import IRTS.System (getDataFileName)
22+import IRTS.System (getIdrisDataFileByName)
2323
2424import Control.Applicative ((<|>))
2525import Control.Monad (forM_)
@@ -708,5 +708,5 @@ copyDependencies :: FilePath -- ^ The base directory to which
708708 -- dependencies should be written
709709 -> IO ()
710710copyDependencies dir =
711− do styles <- getDataFileName $ "idrisdoc" </> "styles.css"
711+ do styles <- getIdrisDataFileByName $ "idrisdoc" </> "styles.css"
712712 copyFile styles (dir </> "styles.css")
src/Idris/Info.hs+5
@@ -22,6 +22,7 @@ module Idris.Info
2222 , getIdrisHistoryFile
2323 , getIdrisInstalledPackages
2424 , getIdrisLoggingCategories
25+ , getIdrisDataFileByName
2526 ) where
2627
2728import Idris.AbsSyntax (loggingCatsStr)
@@ -34,6 +35,7 @@ import Version_idris (gitHash)
3435import Data.Version
3536import System.Directory
3637import System.FilePath
38+
3739getIdrisDataDir :: IO String
3840getIdrisDataDir = S.getIdrisDataDir
3941
@@ -88,3 +90,6 @@ getIdrisInstalledPackages = installedPackages
8890
8991getIdrisLoggingCategories :: IO [String]
9092getIdrisLoggingCategories = return $ words loggingCatsStr
93+
94+getIdrisDataFileByName :: String -> IO FilePath
95+getIdrisDataFileByName = S.getIdrisDataFileByName