1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
module CC.Helpers ( ccLoadPath )
where
import Data.List ( intercalate, isInfixOf )
import System.Environment ( getEnv )
import System.FilePath ( searchPathSeparator )
import CC.Config ( getPackageLoadPath )
ccLoadPath :: IO String
ccLoadPath = do
ecurrypath <- getEnv "CURRYPATH"
let ecurrypath' = case ecurrypath of ':':_ -> '.':ecurrypath
_ -> ecurrypath
execpath <- ccExecLoadPath
return $ intercalate [searchPathSeparator] $
if null ecurrypath' then execpath else ecurrypath' : execpath
ccExecLoadPath :: IO [String]
ccExecLoadPath = fmap (filter isRequiredPackage) getPackageLoadPath
where
isRequiredPackage dir =
any (`isInfixOf` dir)
[ "allvalues", "ansi-terminal", "directory", "distribution"
, "easycheck", "filepath", "process", "profiling", "random"
, "searchtree-extra", "time" ]
|