From 54a3824b06c80e5e6bbe11a5dc102de85f47f15a Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Fri, 27 Jun 2025 12:41:05 -0400 Subject: When a second '@' is present, extract the version --- src/lib/delivery/delivery.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/lib/delivery/delivery.c') diff --git a/src/lib/delivery/delivery.c b/src/lib/delivery/delivery.c index d480ab4..5c2767c 100644 --- a/src/lib/delivery/delivery.c +++ b/src/lib/delivery/delivery.c @@ -225,7 +225,15 @@ void delivery_defer_packages(struct Delivery *ctx, int type) { // Override test->version when a version is provided by the (pip|conda)_package list item guard_free(test->version); if (spec_begin && spec_end) { - test->version = strdup(spec_end); + char *version_at = strrchr(spec_end, '@'); + if (version_at) { + if (strlen(version_at)) { + version_at++; + } + test->version = strdup(version_at); + } else { + test->version = strdup(spec_end); + } } else { // There are too many possible default branches nowadays: master, main, develop, xyz, etc. // HEAD is a safe bet. -- cgit From 2425ef83ac7c36947ee1119399b1e4155649ed80 Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Fri, 27 Jun 2025 12:41:52 -0400 Subject: A note to self --- src/lib/delivery/delivery.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/lib/delivery/delivery.c') diff --git a/src/lib/delivery/delivery.c b/src/lib/delivery/delivery.c index 5c2767c..7ec2e04 100644 --- a/src/lib/delivery/delivery.c +++ b/src/lib/delivery/delivery.c @@ -241,6 +241,9 @@ void delivery_defer_packages(struct Delivery *ctx, int type) { } // Is the list item a git+schema:// URL? + // TODO: nametmp is just the name so this will never work. but do we want it to? this looks like + // TODO: an unsafe feature. We shouldn't be able to change what's in the config. we should + // TODO: be getting what we asked for, or exit the program with an error. if (strstr(nametmp, "git+") && strstr(nametmp, "://")) { char *xrepo = strstr(nametmp, "+"); if (xrepo) { -- cgit