nixpkgs-overlay/pkgs/nim/NIM_CONFIG_DIR.patch

24 lines
1020 B
Diff

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) =