{-# LANGUAGE CPP #-}
{-# LANGUAGE NoRebindableSyntax #-}
{-# OPTIONS_GHC -fno-warn-missing-import-lists #-}
module Paths_clash_ghc (
    version,
    getBinDir, getLibDir, getDynLibDir, getDataDir, getLibexecDir,
    getDataFileName, getSysconfDir
  ) where

import qualified Control.Exception as Exception
import Data.Version (Version(..))
import System.Environment (getEnv)
import Prelude

#if defined(VERSION_base)

#if MIN_VERSION_base(4,0,0)
catchIO :: IO a -> (Exception.IOException -> IO a) -> IO a
#else
catchIO :: IO a -> (Exception.Exception -> IO a) -> IO a
#endif

#else
catchIO :: IO a -> (Exception.IOException -> IO a) -> IO a
#endif
catchIO :: IO a -> (IOException -> IO a) -> IO a
catchIO = IO a -> (IOException -> IO a) -> IO a
forall e a. Exception e => IO a -> (e -> IO a) -> IO a
Exception.catch

version :: Version
version :: Version
version = [Int] -> [String] -> Version
Version [Int
1,Int
4,Int
7] []
bindir, libdir, dynlibdir, datadir, libexecdir, sysconfdir :: FilePath

bindir :: String
bindir     = String
"/root/.cabal/bin"
libdir :: String
libdir     = String
"/root/.cabal/lib/x86_64-linux-ghc-8.10.2/clash-ghc-1.4.7-inplace"
dynlibdir :: String
dynlibdir  = String
"/root/.cabal/lib/x86_64-linux-ghc-8.10.2"
datadir :: String
datadir    = String
"/root/.cabal/share/x86_64-linux-ghc-8.10.2/clash-ghc-1.4.7"
libexecdir :: String
libexecdir = String
"/root/.cabal/libexec/x86_64-linux-ghc-8.10.2/clash-ghc-1.4.7"
sysconfdir :: String
sysconfdir = String
"/root/.cabal/etc"

getBinDir, getLibDir, getDynLibDir, getDataDir, getLibexecDir, getSysconfDir :: IO FilePath
getBinDir :: IO String
getBinDir = IO String -> (IOException -> IO String) -> IO String
forall a. IO a -> (IOException -> IO a) -> IO a
catchIO (String -> IO String
getEnv String
"clash_ghc_bindir") (\IOException
_ -> String -> IO String
forall (m :: Type -> Type) a. Monad m => a -> m a
return String
bindir)
getLibDir :: IO String
getLibDir = IO String -> (IOException -> IO String) -> IO String
forall a. IO a -> (IOException -> IO a) -> IO a
catchIO (String -> IO String
getEnv String
"clash_ghc_libdir") (\IOException
_ -> String -> IO String
forall (m :: Type -> Type) a. Monad m => a -> m a
return String
libdir)
getDynLibDir :: IO String
getDynLibDir = IO String -> (IOException -> IO String) -> IO String
forall a. IO a -> (IOException -> IO a) -> IO a
catchIO (String -> IO String
getEnv String
"clash_ghc_dynlibdir") (\IOException
_ -> String -> IO String
forall (m :: Type -> Type) a. Monad m => a -> m a
return String
dynlibdir)
getDataDir :: IO String
getDataDir = IO String -> (IOException -> IO String) -> IO String
forall a. IO a -> (IOException -> IO a) -> IO a
catchIO (String -> IO String
getEnv String
"clash_ghc_datadir") (\IOException
_ -> String -> IO String
forall (m :: Type -> Type) a. Monad m => a -> m a
return String
datadir)
getLibexecDir :: IO String
getLibexecDir = IO String -> (IOException -> IO String) -> IO String
forall a. IO a -> (IOException -> IO a) -> IO a
catchIO (String -> IO String
getEnv String
"clash_ghc_libexecdir") (\IOException
_ -> String -> IO String
forall (m :: Type -> Type) a. Monad m => a -> m a
return String
libexecdir)
getSysconfDir :: IO String
getSysconfDir = IO String -> (IOException -> IO String) -> IO String
forall a. IO a -> (IOException -> IO a) -> IO a
catchIO (String -> IO String
getEnv String
"clash_ghc_sysconfdir") (\IOException
_ -> String -> IO String
forall (m :: Type -> Type) a. Monad m => a -> m a
return String
sysconfdir)

getDataFileName :: FilePath -> IO FilePath
getDataFileName :: String -> IO String
getDataFileName String
name = do
  String
dir <- IO String
getDataDir
  String -> IO String
forall (m :: Type -> Type) a. Monad m => a -> m a
return (String
dir String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
"/" String -> String -> String
forall a. [a] -> [a] -> [a]
++ String
name)