aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/development/compilers/nim/NIM_CONFIG_DIR.patch
blob: 61e05b791cf8cd78d8d81574fb73d90f0ae258e5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
diff --git a/compiler/nimconf.nim b/compiler/nimconf.nim
index a470179bd..73cfa1a23 100644
--- a/compiler/nimconf.nim
+++ b/compiler/nimconf.nim
@@ -225,10 +225,15 @@ proc getUserConfigPath*(filename: RelativeFile): AbsoluteFile =
 proc getSystemConfigPath*(conf: ConfigRef; filename: RelativeFile): AbsoluteFile =
   # try standard configuration file (installation did not distribute files
   # the UNIX way)
-  let p = getPrefixDir(conf)
-  result = p / RelativeDir"config" / filename
+  let
+    prefix = getPrefixDir(conf)
+    env = getEnv("NIM_CONFIG_PATH")
+  if env != "":
+    result = env.toAbsoluteDir / filename
+  else:
+    result = prefix / RelativeDir"config" / filename
   when defined(unix):
-    if not fileExists(result): result = p / RelativeDir"etc/nim" / filename
+    if not fileExists(result): result = prefix / RelativeDir"etc/nim" / filename
     if not fileExists(result): result = AbsoluteDir"/etc/nim" / filename

 proc loadConfigs*(cfg: RelativeFile; cache: IdentCache; conf: ConfigRef) =