summaryrefslogtreecommitdiffstats
path: root/exec.c
diff options
context:
space:
mode:
authorTavian Barnes <tavianator@tavianator.com>2020-03-13 16:26:51 -0400
committerTavian Barnes <tavianator@tavianator.com>2020-03-15 12:48:33 -0400
commit10975c723ed0c5a6764fda3d4f539a36033dcb0d (patch)
tree15d36bffb2ac490a095ae66a2b4f04bf28860986 /exec.c
parent56a862fded43b528eadc232d37a8684b48ef702c (diff)
downloadbfs-10975c723ed0c5a6764fda3d4f539a36033dcb0d.tar.xz
exec: Warn if a command dies abnormally
Diffstat (limited to 'exec.c')
-rw-r--r--exec.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/exec.c b/exec.c
index ce42f1a..3c791d7 100644
--- a/exec.c
+++ b/exec.c
@@ -37,7 +37,7 @@
/** Print some debugging info. */
BFS_FORMATTER(2, 3)
static void bfs_exec_debug(const struct bfs_exec *execbuf, const char *format, ...) {
- if (!(execbuf->flags & BFS_EXEC_DEBUG)) {
+ if (!(execbuf->cmdline->debug & DEBUG_EXEC)) {
return;
}
@@ -123,6 +123,7 @@ struct bfs_exec *parse_bfs_exec(char **argv, enum bfs_exec_flags flags, const st
}
execbuf->flags = flags;
+ execbuf->cmdline = cmdline;
execbuf->argv = NULL;
execbuf->argc = 0;
execbuf->argv_cap = 0;
@@ -133,10 +134,6 @@ struct bfs_exec *parse_bfs_exec(char **argv, enum bfs_exec_flags flags, const st
execbuf->wd_len = 0;
execbuf->ret = 0;
- if (cmdline->debug & DEBUG_EXEC) {
- execbuf->flags |= BFS_EXEC_DEBUG;
- }
-
size_t i;
for (i = 1; ; ++i) {
const char *arg = argv[i];
@@ -391,9 +388,9 @@ fail:
}
} else if (WIFSIGNALED(wstatus)) {
int sig = WTERMSIG(wstatus);
- bfs_exec_debug(execbuf, "Command '%s' terminated by signal %d\n", execbuf->argv[0], sig);
+ bfs_warning(execbuf->cmdline, "Command '${ex}%s${rs}' terminated by signal %d\n", execbuf->argv[0], sig);
} else {
- bfs_exec_debug(execbuf, "Command '%s' terminated abnormally\n", execbuf->argv[0]);
+ bfs_warning(execbuf->cmdline, "Command '${ex}%s${rs}' terminated abnormally\n", execbuf->argv[0]);
}
errno = 0;