aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/development/compilers/nim/NIM_CONFIG_DIR.patch
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) =