From 5d21c2c6eab632cc519eb23e529c2d985ac04921 Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Mon, 21 Oct 2024 12:11:05 -0400 Subject: Change signature: * delivery_gather_tool_versions now returns non-zero if unable to determine a tool's version --- src/cli/stasis/stasis_main.c | 17 +++++++++-------- src/lib/core/delivery.c | 14 ++++++++++---- 2 files changed, 19 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/cli/stasis/stasis_main.c b/src/cli/stasis/stasis_main.c index 5325892..c2443d7 100644 --- a/src/cli/stasis/stasis_main.c +++ b/src/cli/stasis/stasis_main.c @@ -332,14 +332,15 @@ int main(int argc, char *argv[]) { exit(1); } - delivery_gather_tool_versions(&ctx); - if (!ctx.conda.tool_version) { - msg(STASIS_MSG_ERROR | STASIS_MSG_L2, "Could not determine conda version\n"); - exit(1); - } - if (!ctx.conda.tool_build_version) { - msg(STASIS_MSG_ERROR | STASIS_MSG_L2, "Could not determine conda-build version\n"); - exit(1); + if (delivery_gather_tool_versions(&ctx)) { + if (!ctx.conda.tool_version) { + msg(STASIS_MSG_ERROR | STASIS_MSG_L2, "Could not determine conda version\n"); + exit(1); + } + if (!ctx.conda.tool_build_version) { + msg(STASIS_MSG_ERROR | STASIS_MSG_L2, "Could not determine conda-build version\n"); + exit(1); + } } if (pip_exec("install build")) { diff --git a/src/lib/core/delivery.c b/src/lib/core/delivery.c index e32ed4c..5645dcc 100644 --- a/src/lib/core/delivery.c +++ b/src/lib/core/delivery.c @@ -302,16 +302,22 @@ void delivery_defer_packages(struct Delivery *ctx, int type) { } } -void delivery_gather_tool_versions(struct Delivery *ctx) { - int status = 0; +int delivery_gather_tool_versions(struct Delivery *ctx) { + int status_tool_version = 0; + int status_tool_build_version = 0; // Extract version from tool output - ctx->conda.tool_version = shell_output("conda --version", &status); + ctx->conda.tool_version = shell_output("conda --version", &status_tool_version); if (ctx->conda.tool_version) strip(ctx->conda.tool_version); - ctx->conda.tool_build_version = shell_output("conda build --version", &status); + ctx->conda.tool_build_version = shell_output("conda build --version", &status_tool_build_version); if (ctx->conda.tool_build_version) strip(ctx->conda.tool_version); + + if (status_tool_version || status_tool_build_version) { + return 1; + } + return 0; } -- cgit