aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib/delivery/delivery_init.c16
-rw-r--r--src/lib/delivery/delivery_populate.c14
2 files changed, 19 insertions, 11 deletions
diff --git a/src/lib/delivery/delivery_init.c b/src/lib/delivery/delivery_init.c
index fe60075..56c591a 100644
--- a/src/lib/delivery/delivery_init.c
+++ b/src/lib/delivery/delivery_init.c
@@ -289,10 +289,18 @@ int bootstrap_build_info(struct Delivery *ctx) {
struct Delivery local = {0};
local._stasis_ini_fp.cfg = ini_open(ctx->_stasis_ini_fp.cfg_path);
local._stasis_ini_fp.delivery = ini_open(ctx->_stasis_ini_fp.delivery_path);
- delivery_init_platform(&local);
- populate_delivery_cfg(&local, INI_READ_RENDER);
- populate_delivery_ini(&local, INI_READ_RENDER);
- populate_info(&local);
+ if (delivery_init_platform(&local)) {
+ return -1;
+ }
+ if (populate_delivery_cfg(&local, INI_READ_RENDER)) {
+ return -1;
+ }
+ if (populate_delivery_ini(&local, INI_READ_RENDER)) {
+ return -1;
+ }
+ if (populate_info(&local)) {
+ return -1;
+ }
ctx->info.build_name = strdup(local.info.build_name);
ctx->info.build_number = strdup(local.info.build_number);
ctx->info.release_name = strdup(local.info.release_name);
diff --git a/src/lib/delivery/delivery_populate.c b/src/lib/delivery/delivery_populate.c
index f242328..84676f1 100644
--- a/src/lib/delivery/delivery_populate.c
+++ b/src/lib/delivery/delivery_populate.c
@@ -171,13 +171,7 @@ int populate_delivery_ini(struct Delivery *ctx, int render_mode) {
int err = 0;
ctx->meta.mission = ini_getval_str(ini, "meta", "mission", render_mode, &err);
-
- if (!strcasecmp(ctx->meta.mission, "hst")) {
- ctx->meta.codename = ini_getval_str(ini, "meta", "codename", render_mode, &err);
- } else {
- ctx->meta.codename = NULL;
- }
-
+ ctx->meta.codename = ini_getval_str(ini, "meta", "codename", render_mode, &err);
ctx->meta.version = ini_getval_str(ini, "meta", "version", render_mode, &err);
ctx->meta.name = ini_getval_str(ini, "meta", "name", render_mode, &err);
ctx->meta.rc = ini_getval_int(ini, "meta", "rc", render_mode, &err);
@@ -215,6 +209,12 @@ int populate_delivery_ini(struct Delivery *ctx, int render_mode) {
guard_free(ctx->info.build_number);
}
+ // Fail if a mission requires a codename, but one is not defined
+ if (strstr(ctx->rules.release_fmt, "%c") && isempty(ctx->meta.codename)) {
+ SYSERROR("Mission type '%s' requires meta.codename to be defined", ctx->meta.mission);
+ return -1;
+ }
+
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;