diff options
author | Joseph Hunkeler <jhunkeler@gmail.com> | 2025-02-18 11:07:41 -0500 |
---|---|---|
committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2025-02-18 11:07:41 -0500 |
commit | b3d4943c540796eb97a91e572d14217538369fff (patch) | |
tree | 4996e28377ff29e549a9044871313d06dfe0f9c6 /src/cli | |
parent | 7de9527cb69d64e6ff3589bc7f706fc2f9ff027a (diff) | |
download | stasis-b3d4943c540796eb97a91e572d14217538369fff.tar.gz |
Do not show docker line if no image exists
* Fix docker_images free call
* Inject horizontal lines between RCs
Diffstat (limited to 'src/cli')
-rw-r--r-- | src/cli/stasis_indexer/readmes.c | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/src/cli/stasis_indexer/readmes.c b/src/cli/stasis_indexer/readmes.c index 51472df..ca17728 100644 --- a/src/cli/stasis_indexer/readmes.c +++ b/src/cli/stasis_indexer/readmes.c @@ -23,6 +23,9 @@ int indexer_readmes(struct Delivery ctx[], const size_t nelem) { fprintf(indexfp, "# %s-%s\n\n", ctx->meta.name, ctx->meta.version); fprintf(indexfp, "## Current Release\n\n"); + strlist_sort(platforms, STASIS_SORT_ALPHA); + strlist_sort(archs, STASIS_SORT_ALPHA); + strlist_reverse(archs); for (size_t p = 0; p < strlist_count(platforms); p++) { char *platform = strlist_item(platforms, p); for (size_t a = 0; a < strlist_count(archs); a++) { @@ -57,16 +60,24 @@ int indexer_readmes(struct Delivery ctx[], const size_t nelem) { fprintf(indexfp, " - Info: [README](%s)\n", readme_name); fprintf(indexfp, " - Release: [Conda Environment YAML](%s)\n", link_name); fprintf(indexfp, " - Receipt: [STASIS input file](%s)\n", conf_name_relative); - fprintf(indexfp, " - Docker: "); - struct StrList *docker_images = get_docker_images(&latest_deliveries[i], ""); + + char *pattern = NULL; + asprintf(&pattern, "*%s*%s*", + latest_deliveries[i].info.build_number, + strstr(ctx->rules.release_fmt, "%p") ? latest_deliveries[i].meta.python_compact : "" ); + if (!pattern) { + SYSERROR("%s", "Unable to allocate bytes for pattern"); + return -1; + } + struct StrList *docker_images = get_docker_images(&latest_deliveries[i], pattern); if (docker_images && strlist_count(docker_images) && !strcmp(latest_deliveries[i].system.platform[DELIVERY_PLATFORM_RELEASE], "linux")) { + fprintf(indexfp, " - Docker: "); fprintf(indexfp, "[Archive](../packages/docker/%s)\n", path_basename(strlist_item(docker_images, 0))); - } else { - fprintf(indexfp, "N/A\n"); } - guard_free(docker_images); + guard_strlist_free(&docker_images); + guard_free(pattern); } } fprintf(indexfp, "\n"); @@ -75,13 +86,17 @@ int indexer_readmes(struct Delivery ctx[], const size_t nelem) { } fprintf(indexfp, "## Releases\n"); + int current_rc = ctx->meta.rc; for (size_t i = 0; ctx[i].meta.name != NULL; i++) { struct Delivery *current = &ctx[i]; + if (current_rc > current->meta.rc) { + current_rc = current->meta.rc; + fprintf(indexfp, "\n---\n"); + } fprintf(indexfp, "### %s\n", current->info.release_name); fprintf(indexfp, "- Info: [README](README-%s.html)\n", current->info.release_name); fprintf(indexfp, "- Release: [Conda Environment YAML](%s.yml)\n", current->info.release_name); fprintf(indexfp, "- Receipt: [STASIS input file](../config/%s.ini)\n", current->info.release_name); - fprintf(indexfp, "- Docker: \n"); char *pattern = NULL; asprintf(&pattern, "*%s*%s*", @@ -96,11 +111,10 @@ int indexer_readmes(struct Delivery ctx[], const size_t nelem) { if (docker_images && strlist_count(docker_images) && !strcmp(current->system.platform[DELIVERY_PLATFORM_RELEASE], "linux")) { + fprintf(indexfp, "- Docker: \n"); fprintf(indexfp, "[Archive](../packages/docker/%s)\n", path_basename(strlist_item(docker_images, 0))); - } else { - fprintf(indexfp, "N/A\n"); } - guard_free(docker_images); + guard_strlist_free(&docker_images); guard_free(pattern); } fprintf(indexfp, "\n"); |