0 | module Pack.Config.Environment.Variable
2 | import public Data.FilePath.File
3 | import Pack.Config.Types
9 | public export %inline
11 | DirList = List (Path Abs)
14 | data EnvVar : Type where
15 | MkEnvVar : (name : String) -> (value : String) -> EnvVar
18 | envVar : Interpolation a => (name : String) -> (val : a) -> EnvVar
19 | envVar name = MkEnvVar name . interpolate
27 | Interpolation DirList where
28 | interpolate = fastConcat . intersperse ":" . map interpolate
32 | Interpolation EnvVar where
33 | interpolate (MkEnvVar var val) = "\{var}=\{val}"
44 | IdrisCodegenVar : Codegen -> EnvVar
45 | IdrisCodegenVar = envVar "IDRIS2_CG"
49 | SchemeVar : FilePath -> EnvVar
50 | SchemeVar = envVar "SCHEME"
54 | IdrisBootVar : File Abs -> EnvVar
55 | IdrisBootVar = envVar "IDRIS2_BOOT"
59 | PrefixVar : Path Abs -> EnvVar
60 | PrefixVar = envVar "PREFIX"
64 | IdrisPrefixVar : Path Abs -> EnvVar
65 | IdrisPrefixVar = envVar "IDRIS2_PREFIX"
70 | IdrisPackagePathVar : DirList -> EnvVar
71 | IdrisPackagePathVar = envVar "IDRIS2_PACKAGE_PATH"
76 | IdrisDataVar : DirList -> EnvVar
77 | IdrisDataVar = envVar "IDRIS2_DATA"
81 | IdrisLibsVar : DirList -> EnvVar
82 | IdrisLibsVar = envVar "IDRIS2_LIBS"