aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2026-03-05 13:30:30 -0500
committerJoseph Hunkeler <jhunkeler@gmail.com>2026-03-05 13:30:35 -0500
commitd643ad74eca21bcba0039cdb8b3768614d6b02ef (patch)
tree7e99c58bf67344462e36a7dabd085488b6acf2d1 /src
parent7dcf376505e58c3a36d801653962d5813a016e85 (diff)
downloadstasis-d643ad74eca21bcba0039cdb8b3768614d6b02ef.tar.gz
Add backwards compatible way to emit only stdout, or stderr from docker command
Diffstat (limited to 'src')
-rw-r--r--src/lib/core/docker.c17
-rw-r--r--src/lib/core/include/docker.h2
2 files changed, 17 insertions, 2 deletions
diff --git a/src/lib/core/docker.c b/src/lib/core/docker.c
index 87e5e0e..fb25ddb 100644
--- a/src/lib/core/docker.c
+++ b/src/lib/core/docker.c
@@ -1,17 +1,30 @@
#include "docker.h"
-int docker_exec(const char *args, unsigned flags) {
+int docker_exec(const char *args, const unsigned flags) {
struct Process proc;
char cmd[PATH_MAX];
memset(&proc, 0, sizeof(proc));
memset(cmd, 0, sizeof(cmd));
snprintf(cmd, sizeof(cmd) - 1, "docker %s", args);
+
+ unsigned final_flags = 0;
if (flags & STASIS_DOCKER_QUIET) {
+ final_flags |= STASIS_DOCKER_QUIET_STDOUT;
+ final_flags |= STASIS_DOCKER_QUIET_STDERR;
+ } else {
+ final_flags = flags;
+ }
+
+ if (final_flags & STASIS_DOCKER_QUIET_STDOUT) {
strcpy(proc.f_stdout, "/dev/null");
+ }
+ if (final_flags & STASIS_DOCKER_QUIET_STDERR) {
strcpy(proc.f_stderr, "/dev/null");
- } else {
+ }
+
+ if (!final_flags) {
msg(STASIS_MSG_L2, "Executing: %s\n", cmd);
}
diff --git a/src/lib/core/include/docker.h b/src/lib/core/include/docker.h
index 96734f8..dd67f21 100644
--- a/src/lib/core/include/docker.h
+++ b/src/lib/core/include/docker.h
@@ -6,6 +6,8 @@
//! Flag to squelch output from docker_exec()
#define STASIS_DOCKER_QUIET 1 << 1
+#define STASIS_DOCKER_QUIET_STDOUT 1 << 2
+#define STASIS_DOCKER_QUIET_STDERR 1 << 3
//! Flag for older style docker build
#define STASIS_DOCKER_BUILD 1 << 1