Add srcDir to depends output
This commit is contained in:
parent
092252a727
commit
8822dffd2b
|
@ -3,6 +3,6 @@ bin = @["nim_lk"]
|
||||||
description = "Tool for generating Nim lockfiles"
|
description = "Tool for generating Nim lockfiles"
|
||||||
license = "BSD-3-Clause"
|
license = "BSD-3-Clause"
|
||||||
srcDir = "src"
|
srcDir = "src"
|
||||||
version = "20231001"
|
version = "20231004"
|
||||||
|
|
||||||
requires "nim >= 2.0.0"
|
requires "nim >= 2.0.0"
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
include_rules
|
include_rules
|
||||||
: nim_lk.nim |> !nim_bin |>
|
: nim_lk.nim |> !nim_bin |> $(BIN_DIR)/nim_lk | $(BIN_DIR)/<nim_lk>
|
||||||
|
|
|
@ -54,7 +54,7 @@ proc matchRev(url: string; wanted: VersionRange): tuple[tag: string, rev: string
|
||||||
if result.rev == "" and pairs.len > 0:
|
if result.rev == "" and pairs.len > 0:
|
||||||
result = pairs[pairs.high]
|
result = pairs[pairs.high]
|
||||||
|
|
||||||
proc collectMetadata(data: JsonNode) =
|
proc collectMetadata(data: JsonNode; options: Options) =
|
||||||
let storePath = data["path"].getStr
|
let storePath = data["path"].getStr
|
||||||
var packageNames = newJArray()
|
var packageNames = newJArray()
|
||||||
for (kind, path) in walkDir(storePath):
|
for (kind, path) in walkDir(storePath):
|
||||||
|
@ -64,8 +64,12 @@ proc collectMetadata(data: JsonNode) =
|
||||||
if packageNames.len == 0:
|
if packageNames.len == 0:
|
||||||
quit("no .nimble files found in " & storePath)
|
quit("no .nimble files found in " & storePath)
|
||||||
data["packages"] = packageNames
|
data["packages"] = packageNames
|
||||||
|
var
|
||||||
|
nimbleFilePath = findNimbleFile(storePath, true)
|
||||||
|
pkg = readPackageInfo(nimbleFilePath, options)
|
||||||
|
data["srcDir"] = %pkg.srcDir
|
||||||
|
|
||||||
proc prefechtGit(uri: Uri; version: VersionRange): JsonNode =
|
proc prefetchGit(uri: Uri; version: VersionRange; options: Options): JsonNode =
|
||||||
var
|
var
|
||||||
uri = uri
|
uri = uri
|
||||||
subdir = ""
|
subdir = ""
|
||||||
|
@ -93,7 +97,7 @@ proc prefechtGit(uri: Uri; version: VersionRange): JsonNode =
|
||||||
result["method"] = %"git"
|
result["method"] = %"git"
|
||||||
if tag != "":
|
if tag != "":
|
||||||
result["ref"] = %tag
|
result["ref"] = %tag
|
||||||
collectMetadata(result)
|
collectMetadata(result, options)
|
||||||
|
|
||||||
proc containsPackageUri(lockAttrs: JsonNode; pkgUri: string): bool =
|
proc containsPackageUri(lockAttrs: JsonNode; pkgUri: string): bool =
|
||||||
for e in lockAttrs.items:
|
for e in lockAttrs.items:
|
||||||
|
@ -159,11 +163,12 @@ proc generateLockfile(options: Options): JsonNode =
|
||||||
if pkg.name == "nim" or pkg.name == "compiler":
|
if pkg.name == "nim" or pkg.name == "compiler":
|
||||||
continue
|
continue
|
||||||
var uri = parseUri(pkg.name)
|
var uri = parseUri(pkg.name)
|
||||||
if uri.scheme == "" and not deps.containsPackage(pkg.name):
|
if uri.scheme == "":
|
||||||
|
if not deps.containsPackage(pkg.name):
|
||||||
pending.addLast(pkg)
|
pending.addLast(pkg)
|
||||||
elif not deps.containsPackageUri(pkg.name):
|
elif not deps.containsPackageUri(pkg.name):
|
||||||
if uri.isGitUrl:
|
if uri.isGitUrl:
|
||||||
pkgData = prefechtGit(uri, pkg.ver)
|
pkgData = prefetchGit(uri, pkg.ver, options)
|
||||||
else:
|
else:
|
||||||
quit("unhandled URI " & $uri)
|
quit("unhandled URI " & $uri)
|
||||||
collectRequires(pending, options, pkgData["path"].getStr)
|
collectRequires(pending, options, pkgData["path"].getStr)
|
||||||
|
@ -176,7 +181,7 @@ proc generateLockfile(options: Options): JsonNode =
|
||||||
case info.meth
|
case info.meth
|
||||||
of "git":
|
of "git":
|
||||||
stderr.writeLine "prefetch ", info.uri
|
stderr.writeLine "prefetch ", info.uri
|
||||||
var pkgData = prefechtGit(parseUri info.uri, pkg.ver)
|
var pkgData = prefetchGit(parseUri info.uri, pkg.ver, options)
|
||||||
collectRequires(pending, options, pkgData["path"].getStr)
|
collectRequires(pending, options, pkgData["path"].getStr)
|
||||||
deps.add pkgData
|
deps.add pkgData
|
||||||
else:
|
else:
|
||||||
|
|
Loading…
Reference in New Issue
Block a user