diff options
| author | Joseph Hunkeler <jhunkeler@gmail.com> | 2026-03-05 13:30:30 -0500 |
|---|---|---|
| committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2026-03-05 13:30:35 -0500 |
| commit | d643ad74eca21bcba0039cdb8b3768614d6b02ef (patch) | |
| tree | 7e99c58bf67344462e36a7dabd085488b6acf2d1 | |
| parent | 7dcf376505e58c3a36d801653962d5813a016e85 (diff) | |
| download | stasis-d643ad74eca21bcba0039cdb8b3768614d6b02ef.tar.gz | |
Add backwards compatible way to emit only stdout, or stderr from docker command
| -rw-r--r-- | src/lib/core/docker.c | 17 | ||||
| -rw-r--r-- | src/lib/core/include/docker.h | 2 |
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 |
