aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2024-04-10 08:40:20 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2024-04-10 08:40:20 -0400
commit0d30c044faf7d049e01b0591c792baf8e7fe1151 (patch)
tree1689300d7563364fd3917882af191082716f9f06 /src
parent9cca7f4122619acbbc35df870b6ae9785f72d2c7 (diff)
downloadstasis-0d30c044faf7d049e01b0591c792baf8e7fe1151.tar.gz
Add docker_validate_image_compression()
Diffstat (limited to 'src')
-rw-r--r--src/deliverable.c19
-rw-r--r--src/docker.c17
2 files changed, 21 insertions, 15 deletions
diff --git a/src/deliverable.c b/src/deliverable.c
index 9b20a63..b02deba 100644
--- a/src/deliverable.c
+++ b/src/deliverable.c
@@ -648,21 +648,10 @@ int delivery_init(struct Delivery *ctx) {
tolower_s(item);
}
}
- /*
- if (!strcasecmp(ctx->meta.mission, "hst") && ctx->meta.final) {
- memset(env_date, 0, sizeof(env_date));
- strftime(env_date, sizeof(env_date) - 1, "%Y%m%d", ctx->info.time_info);
- snprintf(env_name, sizeof(env_name) - 1, "%s_%s_%s_%s_py%s_final",
- ctx->meta.name, env_date, ctx->system.platform[DELIVERY_PLATFORM_RELEASE], ctx->system.arch, ctx->meta.python_compact);
- } else if (!strcasecmp(ctx->meta.mission, "hst")) {
- snprintf(env_name, sizeof(env_name) - 1, "%s_%s_%s_%s_py%s_rc%d",
- ctx->meta.name, ctx->meta.codename, ctx->system.platform[DELIVERY_PLATFORM_RELEASE], ctx->system.arch, ctx->meta.python_compact, ctx->meta.rc);
- } else if (!strcasecmp(ctx->meta.mission, "jwst") && ctx->meta.final) {
- snprintf(env_name, sizeof(env_name), "%s_%s_%s_%s_py%s_final",
- ctx->meta.name, ctx->meta.version, ctx->system.platform[DELIVERY_PLATFORM_RELEASE], ctx->system.arch, ctx->meta.python_compact);
- } else if (!strcasecmp(ctx->meta.mission, "jwst")) {
- 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 (docker_validate_compression_program(ctx->deploy.docker.image_compression)) {
+ SYSERROR("[deploy:docker].image_compression - invalid command / program is not installed: %s", ctx->deploy.docker.image_compression);
+ return -1;
}
*/
return 0;
diff --git a/src/docker.c b/src/docker.c
index e2a392b..3a4d97e 100644
--- a/src/docker.c
+++ b/src/docker.c
@@ -180,3 +180,20 @@ void docker_sanitize_tag(char *str) {
pos++;
}
}
+
+int docker_validate_compression_program(char *prog) {
+ int result = -1;
+ char **parts = NULL;
+ if (!prog) {
+ goto invalid;
+ }
+ parts = split(prog, " ", 1);
+ if (!parts) {
+ goto invalid;
+ }
+ result = find_program(parts[0]) ? 0 : -1;
+
+ invalid:
+ GENERIC_ARRAY_FREE(parts);
+ return result;
+}