Implicitly set noNimblePath when nimble.lock is present (#21266)
Fixes https://github.com/nim-lang/nimble/issues/1004
This commit is contained in:
parent
00ef27f4d1
commit
7c6dcfd968
1 changed files with 14 additions and 0 deletions
|
|
@ -41,6 +41,15 @@ when defined(profiler) or defined(memProfiler):
|
||||||
{.hint: "Profiling support is turned on!".}
|
{.hint: "Profiling support is turned on!".}
|
||||||
import nimprof
|
import nimprof
|
||||||
|
|
||||||
|
proc nimbleLockExists(config: ConfigRef): bool =
|
||||||
|
const nimbleLock = "nimble.lock"
|
||||||
|
let pd = if not config.projectPath.isEmpty: config.projectPath else: AbsoluteDir(getCurrentDir())
|
||||||
|
if optSkipParentConfigFiles notin config.globalOptions:
|
||||||
|
for dir in parentDirs(pd.string, fromRoot=true, inclusive=false):
|
||||||
|
if fileExists(dir / nimbleLock):
|
||||||
|
return true
|
||||||
|
return fileExists(pd.string / nimbleLock)
|
||||||
|
|
||||||
proc processCmdLine(pass: TCmdLinePass, cmd: string; config: ConfigRef) =
|
proc processCmdLine(pass: TCmdLinePass, cmd: string; config: ConfigRef) =
|
||||||
var p = parseopt.initOptParser(cmd)
|
var p = parseopt.initOptParser(cmd)
|
||||||
var argsCount = 0
|
var argsCount = 0
|
||||||
|
|
@ -74,6 +83,11 @@ proc processCmdLine(pass: TCmdLinePass, cmd: string; config: ConfigRef) =
|
||||||
config.arguments.len > 0 and config.cmd notin {cmdTcc, cmdNimscript, cmdCrun}:
|
config.arguments.len > 0 and config.cmd notin {cmdTcc, cmdNimscript, cmdCrun}:
|
||||||
rawMessage(config, errGenerated, errArgsNeedRunOption)
|
rawMessage(config, errGenerated, errArgsNeedRunOption)
|
||||||
|
|
||||||
|
if config.nimbleLockExists:
|
||||||
|
# disable nimble path if nimble.lock is present.
|
||||||
|
# see https://github.com/nim-lang/nimble/issues/1004
|
||||||
|
disableNimblePath(config)
|
||||||
|
|
||||||
proc getNimRunExe(conf: ConfigRef): string =
|
proc getNimRunExe(conf: ConfigRef): string =
|
||||||
# xxx consider defining `conf.getConfigVar("nimrun.exe")` to allow users to
|
# xxx consider defining `conf.getConfigVar("nimrun.exe")` to allow users to
|
||||||
# customize the binary to run the command with, e.g. for custom `nodejs` or `wine`.
|
# customize the binary to run the command with, e.g. for custom `nodejs` or `wine`.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue