diff options
author | Joseph Hunkeler <jhunkeler@gmail.com> | 2024-11-14 13:21:00 -0500 |
---|---|---|
committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2024-11-14 13:21:00 -0500 |
commit | f2cc2cee71c6d2fb0cdd5b7736e86efa4f999c0a (patch) | |
tree | 136bad019a949d37bd1618029c3842753b10f39d /src | |
parent | ef3f7feeb635e42ef107271edccc952d512ea718 (diff) | |
download | stasis-f2cc2cee71c6d2fb0cdd5b7736e86efa4f999c0a.tar.gz |
Sort releases by python version
Diffstat (limited to 'src')
-rw-r--r-- | src/cli/stasis_indexer/stasis_indexer.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/cli/stasis_indexer/stasis_indexer.c b/src/cli/stasis_indexer/stasis_indexer.c index fddf18c..f45f073 100644 --- a/src/cli/stasis_indexer/stasis_indexer.c +++ b/src/cli/stasis_indexer/stasis_indexer.c @@ -713,6 +713,21 @@ void indexer_init_dirs(struct Delivery *ctx, const char *workdir) { } } +static int sort_deliveries_cmpfn(const void *a, const void *b) { + const struct Delivery *delivery1 = (struct Delivery *) a; + const size_t delivery1_python = strtoul(delivery1->meta.python_compact, NULL, 10); + const struct Delivery *delivery2 = (struct Delivery *) b; + const size_t delivery2_python = strtoul(delivery2->meta.python_compact, NULL, 10); + + if (delivery2_python > delivery1_python) { + return 1; + } + if (delivery2_python < delivery1_python) { + return -1; + } + return 0; +} + int main(int argc, char *argv[]) { size_t rootdirs_total = 0; char *destdir = NULL; @@ -885,6 +900,7 @@ int main(int argc, char *argv[]) { } indexer_load_metadata(&local[i], path); } + qsort(local, strlist_count(metafiles), sizeof(*local), sort_deliveries_cmpfn); msg(STASIS_MSG_L1, "Generating links to latest release iteration\n"); if (indexer_symlinks(local, strlist_count(metafiles))) { |