diff options
-rw-r--r-- | futility/misc.c | 3 | ||||
-rw-r--r-- | host/lib/cbfstool.c | 2 | ||||
-rw-r--r-- | host/lib/subprocess.c | 25 |
3 files changed, 27 insertions, 3 deletions
diff --git a/futility/misc.c b/futility/misc.c index 874039f0..7d261c2c 100644 --- a/futility/misc.c +++ b/futility/misc.c @@ -39,7 +39,8 @@ void vb2ex_printf(const char *func, const char *format, ...) va_list ap; va_start(ap, format); - fprintf(stderr, "DEBUG: %s: ", func); + if (func) + fprintf(stderr, "DEBUG: %s: ", func); vfprintf(stderr, format, ap); va_end(ap); } diff --git a/host/lib/cbfstool.c b/host/lib/cbfstool.c index 8f547066..9f09d136 100644 --- a/host/lib/cbfstool.c +++ b/host/lib/cbfstool.c @@ -43,8 +43,6 @@ vb2_error_t cbfstool_truncate(const char *file, const char *region, cbfstool, file, "truncate", "-r", region, NULL, }; - VB2_DEBUG("Calling: %s '%s' truncate -r '%s'\n", cbfstool, file, - region); status = subprocess_run(argv, &subprocess_null, &output, &subprocess_null); diff --git a/host/lib/subprocess.c b/host/lib/subprocess.c index 242b1897..8905d1c2 100644 --- a/host/lib/subprocess.c +++ b/host/lib/subprocess.c @@ -5,6 +5,7 @@ #include <errno.h> #include <fcntl.h> +#include <stdbool.h> #include <stdlib.h> #include <string.h> #include <sys/wait.h> @@ -248,6 +249,28 @@ static int process_target_output(struct subprocess_target *target) return rv; } +static bool contains_spaces(const char *s) +{ + for (size_t i = 0; s[i]; i++) { + if (isspace(s[i])) + return true; + } + return false; +} + +static void subprocess_log_call(const char *const argv[]) +{ + VB2_DEBUG("Run:"); + + for (size_t i = 0; argv[i]; i++) { + if (contains_spaces(argv[i])) + VB2_DEBUG_RAW(" '%s'", argv[i]); + else + VB2_DEBUG_RAW(" %s", argv[i]); + } + VB2_DEBUG_RAW("\n"); +} + struct subprocess_target subprocess_null = { .type = TARGET_NULL, }; @@ -275,6 +298,8 @@ int subprocess_run(const char *const argv[], int status; pid_t pid = -1; + subprocess_log_call(argv); + if (!input) input = &subprocess_stdin; if (!output) |