Add srcDir to depends output

This commit is contained in:
Ehmry - 2023-10-04 00:03:07 +01:00
parent 092252a727
commit 8822dffd2b
3 changed files with 14 additions and 9 deletions

View File

@ -3,6 +3,6 @@ bin = @["nim_lk"]
description = "Tool for generating Nim lockfiles"
license = "BSD-3-Clause"
srcDir = "src"
version = "20231001"
version = "20231004"
requires "nim >= 2.0.0"

View File

@ -1,2 +1,2 @@
include_rules
: nim_lk.nim |> !nim_bin |>
: nim_lk.nim |> !nim_bin |> $(BIN_DIR)/nim_lk | $(BIN_DIR)/<nim_lk>

View File

@ -54,7 +54,7 @@ proc matchRev(url: string; wanted: VersionRange): tuple[tag: string, rev: string
if result.rev == "" and pairs.len > 0:
result = pairs[pairs.high]
proc collectMetadata(data: JsonNode) =
proc collectMetadata(data: JsonNode; options: Options) =
let storePath = data["path"].getStr
var packageNames = newJArray()
for (kind, path) in walkDir(storePath):
@ -64,8 +64,12 @@ proc collectMetadata(data: JsonNode) =
if packageNames.len == 0:
quit("no .nimble files found in " & storePath)
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
uri = uri
subdir = ""
@ -93,7 +97,7 @@ proc prefechtGit(uri: Uri; version: VersionRange): JsonNode =
result["method"] = %"git"
if tag != "":
result["ref"] = %tag
collectMetadata(result)
collectMetadata(result, options)
proc containsPackageUri(lockAttrs: JsonNode; pkgUri: string): bool =
for e in lockAttrs.items:
@ -159,11 +163,12 @@ proc generateLockfile(options: Options): JsonNode =
if pkg.name == "nim" or pkg.name == "compiler":
continue
var uri = parseUri(pkg.name)
if uri.scheme == "" and not deps.containsPackage(pkg.name):
pending.addLast(pkg)
if uri.scheme == "":
if not deps.containsPackage(pkg.name):
pending.addLast(pkg)
elif not deps.containsPackageUri(pkg.name):
if uri.isGitUrl:
pkgData = prefechtGit(uri, pkg.ver)
pkgData = prefetchGit(uri, pkg.ver, options)
else:
quit("unhandled URI " & $uri)
collectRequires(pending, options, pkgData["path"].getStr)
@ -176,7 +181,7 @@ proc generateLockfile(options: Options): JsonNode =
case info.meth
of "git":
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)
deps.add pkgData
else: