diff options
| author | Joseph Hunkeler <jhunkeler@gmail.com> | 2024-05-02 00:50:06 -0400 | 
|---|---|---|
| committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2024-05-02 00:50:06 -0400 | 
| commit | 259ea8eb64dd8e852e0b2deafeff93c073e782fe (patch) | |
| tree | 8213cece0af352ba71860dd3b079f7796f62c536 /src | |
| parent | 9cbfef97af7491c42ba7a17b3805165f539b20b2 (diff) | |
| download | stasis-259ea8eb64dd8e852e0b2deafeff93c073e782fe.tar.gz | |
Add delivery_dump_metadata()
Diffstat (limited to 'src')
| -rw-r--r-- | src/deliverable.c | 44 | ||||
| -rw-r--r-- | src/omc_main.c | 5 | 
2 files changed, 49 insertions, 0 deletions
| diff --git a/src/deliverable.c b/src/deliverable.c index 4318f53..7471489 100644 --- a/src/deliverable.c +++ b/src/deliverable.c @@ -232,6 +232,7 @@ void delivery_init_dirs_stage2(struct Delivery *ctx) {      path_store(&ctx->storage.results_dir, PATH_MAX, ctx->storage.output_dir, "results");      path_store(&ctx->storage.package_dir, PATH_MAX, ctx->storage.output_dir, "packages");      path_store(&ctx->storage.cfgdump_dir, PATH_MAX, ctx->storage.output_dir, "config"); +    path_store(&ctx->storage.meta_dir, PATH_MAX, ctx->storage.output_dir, "meta");      path_store(&ctx->storage.conda_artifact_dir, PATH_MAX, ctx->storage.package_dir, "conda");      path_store(&ctx->storage.wheel_artifact_dir, PATH_MAX, ctx->storage.package_dir, "wheels"); @@ -1485,6 +1486,7 @@ void delivery_defer_packages(struct Delivery *ctx, int type) {  }  const char *release_header = "# delivery_name: %s\n" +                             "# delivery_fmt: %s\n"                       "# creation_time: %s\n"                       "# conda_ident: %s\n"                       "# conda_build_ident: %s\n"; @@ -1495,12 +1497,54 @@ char *delivery_get_release_header(struct Delivery *ctx) {      strftime(stamp, sizeof(stamp) - 1, "%c", ctx->info.time_info);      sprintf(output, release_header,              ctx->info.release_name, +            ctx->rules.release_fmt,              stamp,              ctx->conda.tool_version,              ctx->conda.tool_build_version);      return strdup(output);  } +int delivery_dump_metadata(struct Delivery *ctx) { +    FILE *fp; +    char filename[PATH_MAX]; +    sprintf(filename, "%s/meta-%s.omc", ctx->storage.meta_dir, ctx->info.release_name); +    fp = fopen(filename, "w+"); +    if (!fp) { +        return -1; +    } +    if (globals.verbose) { +        printf("%s\n", filename); +    } +    fprintf(fp, "name %s\n", ctx->meta.name); +    fprintf(fp, "version %s\n", ctx->meta.version); +    fprintf(fp, "rc %d\n", ctx->meta.rc); +    fprintf(fp, "python %s\n", ctx->meta.python); +    fprintf(fp, "python_compact %s\n", ctx->meta.python_compact); +    fprintf(fp, "mission %s\n", ctx->meta.mission); +    fprintf(fp, "codename %s\n", ctx->meta.codename ? ctx->meta.codename : ""); +    fprintf(fp, "platform %s %s %s %s\n", +            ctx->system.platform[DELIVERY_PLATFORM], +            ctx->system.platform[DELIVERY_PLATFORM_CONDA_SUBDIR], +            ctx->system.platform[DELIVERY_PLATFORM_CONDA_INSTALLER], +            ctx->system.platform[DELIVERY_PLATFORM_RELEASE]); +    fprintf(fp, "arch %s\n", ctx->system.arch); +    fprintf(fp, "time %s\n", ctx->info.time_str_epoch); +    fprintf(fp, "release_fmt %s\n", ctx->rules.release_fmt); +    fprintf(fp, "release_name %s\n", ctx->info.release_name); +    fprintf(fp, "build_name_fmt %s\n", ctx->rules.build_name_fmt); +    fprintf(fp, "build_name %s\n", ctx->info.build_name); +    fprintf(fp, "build_number_fmt %s\n", ctx->rules.build_number_fmt); +    fprintf(fp, "build_number %s\n", ctx->info.build_number); +    fprintf(fp, "conda_installer_baseurl %s\n", ctx->conda.installer_baseurl); +    fprintf(fp, "conda_installer_name %s\n", ctx->conda.installer_name); +    fprintf(fp, "conda_installer_version %s\n", ctx->conda.installer_version); +    fprintf(fp, "conda_installer_platform %s\n", ctx->conda.installer_platform); +    fprintf(fp, "conda_installer_arch %s\n", ctx->conda.installer_arch); + +    fclose(fp); +    return 0; +} +  void delivery_rewrite_spec(struct Delivery *ctx, char *filename, unsigned stage) {      char output[PATH_MAX];      char *header = NULL; diff --git a/src/omc_main.c b/src/omc_main.c index 3ee3a00..170f925 100644 --- a/src/omc_main.c +++ b/src/omc_main.c @@ -586,6 +586,11 @@ int main(int argc, char *argv[]) {          msg(OMC_MSG_L1 | OMC_MSG_WARN, "Artifact uploading is disabled. deploy:artifactory is not configured\n");      } +    msg(OMC_MSG_L1, "Dumping metadata\n"); +    if (delivery_dump_metadata(&ctx)) { +        msg(OMC_MSG_L1 | OMC_MSG_ERROR, "Metadata dump failed\n"); +    } +      msg(OMC_MSG_L1, "Cleaning up\n");      delivery_free(&ctx);      globals_free(); | 
