module Idris.Info
( getIdrisDataDir
, getIdrisCRTSDir
, getIdrisJSRTSDir
, getIdrisLibDir
, getIdrisDocDir
, getIdrisFlagsLib
, getIdrisFlagsInc
, getIdrisFlagsEnv
, getIdrisCC
, getIdrisVersion
, getIdrisVersionNoGit
, getIdrisUserDataDir
, getIdrisInitScript
, getIdrisHistoryFile
, getIdrisInstalledPackages
, getIdrisLoggingCategories
, getIdrisDataFileByName
) where
import Idris.Imports (installedPackages)
import Idris.Options (loggingCatsStr)
import qualified IRTS.System as S
import Version_idris (gitHash)
import Data.Version
import System.Directory
import System.FilePath
getIdrisDataDir :: IO String
getIdrisDataDir :: IO String
getIdrisDataDir = IO String
S.getIdrisDataDir
getIdrisCRTSDir :: IO String
getIdrisCRTSDir :: IO String
getIdrisCRTSDir = IO String
S.getIdrisCRTSDir
getIdrisJSRTSDir :: IO String
getIdrisJSRTSDir :: IO String
getIdrisJSRTSDir = IO String
S.getIdrisJSRTSDir
getIdrisDocDir :: IO String
getIdrisDocDir :: IO String
getIdrisDocDir = IO String
S.getIdrisDocDir
getIdrisLibDir :: IO String
getIdrisLibDir :: IO String
getIdrisLibDir = IO String
S.getIdrisLibDir
getIdrisFlagsLib :: IO [String]
getIdrisFlagsLib :: IO [String]
getIdrisFlagsLib = IO [String]
S.getLibFlags
getIdrisFlagsInc :: IO [String]
getIdrisFlagsInc :: IO [String]
getIdrisFlagsInc = IO [String]
S.getIncFlags
getIdrisFlagsEnv :: IO [String]
getIdrisFlagsEnv :: IO [String]
getIdrisFlagsEnv = IO [String]
S.getEnvFlags
getIdrisCC :: IO String
getIdrisCC :: IO String
getIdrisCC = IO String
S.getCC
getIdrisVersion :: String
getIdrisVersion = Version -> String
showVersion Version
S.version String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
suffix
where
suffix :: String
suffix = if String
gitHash String -> String -> Bool
forall a. Eq a => a -> a -> Bool
==String
"" then String
"" else String
"-" String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
gitHash
getIdrisVersionNoGit :: Version
getIdrisVersionNoGit = Version
S.version
getIdrisUserDataDir :: IO FilePath
getIdrisUserDataDir :: IO String
getIdrisUserDataDir = String -> IO String
getAppUserDataDirectory String
"idris"
getIdrisInitScript :: IO FilePath
getIdrisInitScript :: IO String
getIdrisInitScript = do
String
idrisDir <- IO String
getIdrisUserDataDir
String -> IO String
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return (String -> IO String) -> String -> IO String
forall a b. (a -> b) -> a -> b
$ String
idrisDir String -> String -> String
</> String
"repl" String -> String -> String
</> String
"init"
getIdrisHistoryFile :: IO FilePath
getIdrisHistoryFile :: IO String
getIdrisHistoryFile = do
String
udir <- IO String
getIdrisUserDataDir
String -> IO String
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return (String
udir String -> String -> String
</> String
"repl" String -> String -> String
</> String
"history")
getIdrisInstalledPackages :: IO [String]
getIdrisInstalledPackages :: IO [String]
getIdrisInstalledPackages = IO [String]
installedPackages
getIdrisLoggingCategories :: IO [String]
getIdrisLoggingCategories :: IO [String]
getIdrisLoggingCategories = [String] -> IO [String]
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ([String] -> IO [String]) -> [String] -> IO [String]
forall a b. (a -> b) -> a -> b
$ String -> [String]
words String
loggingCatsStr
getIdrisDataFileByName :: String -> IO FilePath
getIdrisDataFileByName :: String -> IO String
getIdrisDataFileByName = String -> IO String
S.getIdrisDataFileByName