diff options
| author | Joseph Hunkeler <jhunkeler@users.noreply.github.com> | 2024-07-06 09:49:51 -0400 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-06 09:49:51 -0400 | 
| commit | 8ce824ac4b2f526331093a7150e643700efd4d20 (patch) | |
| tree | 99e27dee24e82d78941ded4c510e1bac57c3f015 /src/delivery.c | |
| parent | abe87056faa6ed02aff3bbf77c1fd78b713a0864 (diff) | |
| download | stasis-8ce824ac4b2f526331093a7150e643700efd4d20.tar.gz | |
Add github.c and github.h (#9)
* Add github.c and github.h
* Implements get_github_release_notes()
* Remove unused variables
* Fix circular dependency on tplfunc_frame
* Remove predeclaration of tplfunc_frame
* tpl_register_func accepts pointer to void instead
* tpl_register_func sets maximum number of arguments
* Frame is generated within tpl_register_func
* Improve template function error handling and return/output management
* Remove redundant extern statement
* Include github.h and template_func_proto.h in core.h
* Expose get_github_release_notes_tplfunc_entrypoint function to template engine
* Add template_func_proto.c and template_func_proto.h
* Replace free() with guard variant
* Fix test_template::test_tpl_register_func
* Fix tests
* Fix tests
* cmd should be at least PATH_MAX in size.
* Magic number caused failure to install conda with a long installation path
* Implement get_github_release_notes_auto function that bases release note data off test contexts
* Disable overwriting releases by default
* Add automatic release note generation function call to release_notes.md.in
* Fix test_tpl_register_func()
* Add enough space for tar command plus a path
* Fix circular include
* Github functions do not require access to core.h anyway
* Add comments to union
* Update README to mention template function availability
* Add EnvCtl structure
* Add runtime checks to avoid running all the way to the end only to be met with a configuration error.
* Rename GITHUB to GH
* Development docs pre-rough-draft
Diffstat (limited to 'src/delivery.c')
| -rw-r--r-- | src/delivery.c | 22 | 
1 files changed, 19 insertions, 3 deletions
diff --git a/src/delivery.c b/src/delivery.c index 278647c..7bedef3 100644 --- a/src/delivery.c +++ b/src/delivery.c @@ -1419,7 +1419,7 @@ void delivery_install_conda(char *install_script, char *conda_install_dir) {              // Proceed with the installation              // -b = batch mode (non-interactive) -            char cmd[255] = {0}; +            char cmd[PATH_MAX] = {0};              snprintf(cmd, sizeof(cmd) - 1, "%s %s -b -p %s",                       find_program("bash"),                       install_script, @@ -1476,7 +1476,7 @@ void delivery_defer_packages(struct Delivery *ctx, int type) {      struct StrList *filtered = NULL;      filtered = strlist_init(); -    for (size_t i = 0, z = 0; i < strlist_count(dataptr); i++) { +    for (size_t i = 0; i < strlist_count(dataptr); i++) {          int ignore_pkg = 0;          name = strlist_item(dataptr, i); @@ -1494,7 +1494,6 @@ void delivery_defer_packages(struct Delivery *ctx, int type) {                  if (strstr(name, ctx->tests[x].name)) {                      version = ctx->tests[x].version;                      ignore_pkg = 1; -                    z++;                      break;                  }              } @@ -2164,4 +2163,21 @@ int delivery_fixup_test_results(struct Delivery *ctx) {      closedir(dp);      return 0; +} + +int delivery_exists(struct Delivery *ctx) { +    // TODO: scan artifactory repo for the same information +    char release_pattern[PATH_MAX] = {0}; +    sprintf(release_pattern, "*%s*", ctx->info.release_name); +    struct StrList *files = listdir(ctx->storage.delivery_dir); +    for (size_t i = 0; i < strlist_count(files); i++) { +        char *filename = strlist_item(files, i); +        int release_exists = fnmatch(release_pattern, filename, FNM_PATHNAME); +        if (!globals.enable_overwrite && !release_exists) { +            guard_strlist_free(&files); +            return 1; +        } +    } +    guard_strlist_free(&files); +    return 0;  }
\ No newline at end of file  | 
