aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2024-02-06 09:57:29 -0500
committerJoseph Hunkeler <jhunkeler@gmail.com>2024-02-06 09:57:29 -0500
commit901cd4d49173dfebd94fbbcd54d1cd9d6260a14f (patch)
tree06aaead65f83ec215f96dece14f8015d62b5ed1e /src
parentf7b4187bd7e413d0ab90821485e403553e5f5a32 (diff)
downloadstasis-901cd4d49173dfebd94fbbcd54d1cd9d6260a14f.tar.gz
Add mission rule configuration to delivery context
Diffstat (limited to 'src')
-rw-r--r--src/deliverable.c30
1 files changed, 26 insertions, 4 deletions
diff --git a/src/deliverable.c b/src/deliverable.c
index 11213d7..c18d66a 100644
--- a/src/deliverable.c
+++ b/src/deliverable.c
@@ -138,7 +138,7 @@ void delivery_free(struct Delivery *ctx) {
guard_free(ctx->storage.build_recipes_dir)
guard_free(ctx->storage.build_sources_dir)
guard_free(ctx->storage.build_testing_dir)
- guard_free(ctx->storage.mission_dir);
+ guard_free(ctx->storage.mission_dir)
guard_free(ctx->conda.installer_baseurl)
guard_free(ctx->conda.installer_name)
guard_free(ctx->conda.installer_version)
@@ -401,6 +401,27 @@ int delivery_init(struct Delivery *ctx, struct INIFILE *ini, struct INIFILE *cfg
getter(ini, "conda", "pip_packages", INIVAL_TYPE_STR_ARRAY)
conv_strlist(ctx, conda.pip_packages, "\n")
+ // Delivery metadata consumed
+ // Now populate the rules
+ char missionfile[PATH_MAX] = {0};
+ if (getenv("OMC_SYSCONFDIR")) {
+ sprintf(missionfile, "%s/%s/%s/%s.ini",
+ getenv("OMC_SYSCONFDIR"), "mission", ctx->meta.mission, ctx->meta.mission);
+ } else {
+ sprintf(missionfile, "%s/%s/%s/%s.ini",
+ globals.sysconfdir, "mission", ctx->meta.mission, ctx->meta.mission);
+ }
+
+ msg(OMC_MSG_L2, "Reading mission configuration: %s\n", missionfile);
+ ctx->rules._handle = ini_open(missionfile);
+ if (!ctx->rules._handle) {
+ msg(OMC_MSG_ERROR | OMC_MSG_L2, "Failed to read misson configuration: %s, %s\n", missionfile, strerror(errno));
+ exit(1);
+ }
+
+ getter_required(ctx->rules._handle, "meta", "release_fmt", INIVAL_TYPE_STR)
+ conv_str(ctx, rules.release_fmt)
+
ctx->conda.conda_packages_defer = strlist_init();
ctx->conda.pip_packages_defer = strlist_init();
@@ -449,9 +470,10 @@ int delivery_init(struct Delivery *ctx, struct INIFILE *ini, struct INIFILE *cfg
snprintf(env_name, sizeof(env_name) - 1, "%s_%s_%s_%s_py%s_rc%d",
ctx->meta.name, ctx->meta.version, ctx->system.platform[DELIVERY_PLATFORM_RELEASE], ctx->system.arch, ctx->meta.python_compact, ctx->meta.rc);
}
-
- if (strlen(env_name)) {
- ctx->info.release_name = strdup(env_name);
+ */
+ if (delivery_format_str(ctx, &ctx->info.release_name, ctx->rules.release_fmt)) {
+ fprintf(stderr, "Failed to generate release name. Format used: %s\n", ctx->rules.release_fmt);
+ return -1;
}
return 0;