packages feed

language-dickinson-1.1.0.1: src/Language/Dickinson/Lib.hs

module Language.Dickinson.Lib ( defaultLibPath
                              , dckPath
                              ) where

import           Data.List.Split          (splitWhen)
import           Paths_language_dickinson (getDataDir)
import           System.Environment       (lookupEnv)
import           System.FilePath          ((</>))

dckPath :: IO [FilePath]
dckPath = maybe [] splitEnv <$> lookupEnv "DCK_PATH"

splitEnv :: String -> [FilePath]
splitEnv = splitWhen (== ':')

defaultLibPath :: IO ([FilePath] -> [FilePath])
defaultLibPath = do
    datadir <- getDataDir
    let preludeDir = datadir </> "prelude"
        libDir = datadir </> "lib"
    pure $ (preludeDir :) . (libDir :)