on 385dcbf help sign in
95 lines 2.3 kB history raw
1{-|
2Module : Idris.Info
3Description : Get information about Idris.
4Copyright : 2016 The Idris Community
5License : BSD3
6Maintainer : The Idris Community.
7-}
8module Idris.Info
9 ( getIdrisDataDir
10 , getIdrisCRTSDir
11 , getIdrisJSRTSDir
12 , getIdrisLibDir
13 , getIdrisDocDir
14 , getIdrisFlagsLib
15 , getIdrisFlagsInc
16 , getIdrisFlagsEnv
17 , getIdrisCC
18 , getIdrisVersion
19 , getIdrisVersionNoGit
20 , getIdrisUserDataDir
21 , getIdrisInitScript
22 , getIdrisHistoryFile
23 , getIdrisInstalledPackages
24 , getIdrisLoggingCategories
25 , getIdrisDataFileByName
26 ) where
28import Idris.Imports (installedPackages)
29import Idris.Options (loggingCatsStr)
30import qualified IRTS.System as S
32import Paths_idris
33import Version_idris (gitHash)
35import Data.Version
36import System.Directory
37import System.FilePath
39getIdrisDataDir :: IO String
40getIdrisDataDir = S.getIdrisDataDir
42getIdrisCRTSDir :: IO String
43getIdrisCRTSDir = S.getIdrisCRTSDir
45getIdrisJSRTSDir :: IO String
46getIdrisJSRTSDir = S.getIdrisJSRTSDir
48getIdrisDocDir :: IO String
49getIdrisDocDir = S.getIdrisDocDir
51getIdrisLibDir :: IO String
52getIdrisLibDir = S.getIdrisLibDir
54getIdrisFlagsLib :: IO [String]
55getIdrisFlagsLib = S.getLibFlags
57getIdrisFlagsInc :: IO [String]
58getIdrisFlagsInc = S.getIncFlags
60getIdrisFlagsEnv :: IO [String]
61getIdrisFlagsEnv = S.getEnvFlags
63getIdrisCC :: IO String
64getIdrisCC = S.getCC
66getIdrisVersion = showVersion S.version ++ suffix
67 where
68 suffix = if gitHash =="" then "" else "-" ++ gitHash
70getIdrisVersionNoGit = S.version
73-- | Get the platform-specific, user-specific Idris dir
74getIdrisUserDataDir :: IO FilePath
75getIdrisUserDataDir = getAppUserDataDirectory "idris"
77-- | Locate the platform-specific location for the init script
78getIdrisInitScript :: IO FilePath
79getIdrisInitScript = do
80 idrisDir <- getIdrisUserDataDir
81 return $ idrisDir </> "repl" </> "init"
83getIdrisHistoryFile :: IO FilePath
84getIdrisHistoryFile = do
85 udir <- getIdrisUserDataDir
86 return (udir </> "repl" </> "history")
88getIdrisInstalledPackages :: IO [String]
89getIdrisInstalledPackages = installedPackages
91getIdrisLoggingCategories :: IO [String]
92getIdrisLoggingCategories = return $ words loggingCatsStr
94getIdrisDataFileByName :: String -> IO FilePath
95getIdrisDataFileByName = S.getIdrisDataFileByName