From e2008513b5fb4ae71d87ca6d05bdab5f3cb3a53f Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Thu, 18 Jun 2026 14:05:46 -0400 Subject: Micromamba improvement (#148) * Update micromamba installation logic * Split installation from micromamba() into micromamba_install() * Return -1 when micromamba cannot be installed * Add stasis.ini option "indexer.micromamba_download_url" * Add global variable micromamba_download_url * The installation function attempts two known-good URLs by default * * Add indexer arugment '--micromamba-download-url' * Add is_file_compressed() function to utils * Call micromamba_install() from tests * Add space in usage statement * Fix usage output when option array contains arguments without short options * Add --micromamba-download-url to README.md --- src/cli/stasis_indexer/args.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'src/cli/stasis_indexer/args.c') diff --git a/src/cli/stasis_indexer/args.c b/src/cli/stasis_indexer/args.c index 0d0e9b9..440c671 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, }; @@ -26,17 +28,23 @@ void usage(char *name) { SYSERROR("Unable to allocate memory for options array"); exit(1); } - for (int i = 0; i < maxopts; i++) { - opts[i] = (char) long_options[i].val; + for (int i = 0, n = 0; i < maxopts; i++) { + if (isalnum(long_options[i].val)) { + opts[n] = (char) long_options[i].val; + n++; + } } - printf("usage: %s [-%s] {{STASIS_ROOT}...}\n", name, opts); + printf("usage: %s [-%s] {{STASIS_ROOT} ...}\n", name, opts); guard_free(opts); for (int i = 0; i < maxopts - 1; i++) { char line[255] = {0}; - snprintf(line, sizeof(line), " --%s -%c %-20s", long_options[i].name, long_options[i].val, long_options_help[i]); + snprintf(line, sizeof(line), " --%s %s%c %s", + long_options[i].name, + isalnum(long_options[i].val) ? "-" : "", + isalnum(long_options[i].val) ? long_options[i].val : ' ', + long_options_help[i]); puts(line); } } - -- cgit