From 9d2646362964d05f2c3346b5cd24ad010fdd2039 Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Thu, 18 Jun 2026 12:29:13 -0400 Subject: Add indexer arugment '--micromamba-download-url' * Add is_file_compressed() function to utils * Call micromamba_install() from tests --- src/cli/stasis_indexer/args.c | 2 ++ src/cli/stasis_indexer/helpers.c | 1 + src/cli/stasis_indexer/include/args.h | 2 ++ src/cli/stasis_indexer/stasis_indexer_main.c | 14 ++++++++++++++ 4 files changed, 19 insertions(+) (limited to 'src/cli') diff --git a/src/cli/stasis_indexer/args.c b/src/cli/stasis_indexer/args.c index 0d0e9b9..ccc69e6 100644 --- a/src/cli/stasis_indexer/args.c +++ b/src/cli/stasis_indexer/args.c @@ -7,6 +7,7 @@ struct option long_options[] = { {"verbose", no_argument, 0, 'v'}, {"unbuffered", no_argument, 0, 'U'}, {"web", no_argument, 0, 'w'}, + {"micromamba-download-url", required_argument, 0, OPT_MICROMAMBA_DOWNLOAD_URL}, {0, 0, 0, 0}, }; @@ -16,6 +17,7 @@ const char *long_options_help[] = { "Increase output verbosity", "Disable line buffering", "Generate HTML indexes (requires pandoc)", + "Set micromamba download URL", NULL, }; diff --git a/src/cli/stasis_indexer/helpers.c b/src/cli/stasis_indexer/helpers.c index bdb538d..b89622b 100644 --- a/src/cli/stasis_indexer/helpers.c +++ b/src/cli/stasis_indexer/helpers.c @@ -157,6 +157,7 @@ int micromamba_configure(const struct Delivery *ctx, struct MicromambaInfo *m) { m->conda_prefix = globals.conda_install_prefix; m->micromamba_prefix = micromamba_prefix; m->download_dir = ctx->storage.tmpdir; + m->download_url = globals.micromamba_download_url; const size_t pathvar_len = strlen(getenv("PATH")) + strlen(m->micromamba_prefix) + strlen(m->conda_prefix) + 3 + 4 + 1; // ^^^^^^^^^^^^^^^^^^ diff --git a/src/cli/stasis_indexer/include/args.h b/src/cli/stasis_indexer/include/args.h index 543aa4b..080863c 100644 --- a/src/cli/stasis_indexer/include/args.h +++ b/src/cli/stasis_indexer/include/args.h @@ -3,6 +3,8 @@ #include +#define OPT_MICROMAMBA_DOWNLOAD_URL 1000 + extern struct option long_options[]; void usage(char *name); diff --git a/src/cli/stasis_indexer/stasis_indexer_main.c b/src/cli/stasis_indexer/stasis_indexer_main.c index c13d175..5d86f29 100644 --- a/src/cli/stasis_indexer/stasis_indexer_main.c +++ b/src/cli/stasis_indexer/stasis_indexer_main.c @@ -197,6 +197,13 @@ int main(const int argc, char *argv[]) { case 'w': do_html = 1; break; + case OPT_MICROMAMBA_DOWNLOAD_URL: + globals.micromamba_download_url = strdup(optarg); + if (!globals.micromamba_download_url) { + SYSERROR("unable to allocate memory for micromamba_download_url"); + exit(1); + } + break; case '?': default: exit(1); @@ -326,6 +333,13 @@ int main(const int argc, char *argv[]) { SYSWARN("Unable to open stasis configuration file: %s", cfg_path); } + if (globals.micromamba_download_url && isempty(globals.micromamba_download_url)) { + // safeguard against supplying a zero-length URL + // this covers the case where the user supplied it as an argument and/or in the config file + SYSERROR("micromamba download URL cannot be empty"); + exit(1); + } + indexer_init_dirs(&ctx, workdir); msg(STASIS_MSG_L1, "%s delivery root %s\n", -- cgit