Exit with error code 123 if one or more invocations of cmd failed

This commit is contained in:
sin 2014-01-06 18:51:06 +00:00
parent 3aec0ac2a4
commit 59222b9193

View File

@ -26,6 +26,7 @@ static char **cmd;
static char *argb; static char *argb;
static size_t argbsz = 1; static size_t argbsz = 1;
static size_t argbpos; static size_t argbpos;
static int nerrors = 0;
static int rflag = 0; static int rflag = 0;
static void static void
@ -93,7 +94,8 @@ main(int argc, char *argv[])
free(argb); free(argb);
free(cmd); free(cmd);
return 0;
return nerrors > 0 ? 123 : 0;
} }
static int static int
@ -245,6 +247,8 @@ runcmd(void)
if (WEXITSTATUS(status) == 127 || if (WEXITSTATUS(status) == 127 ||
WEXITSTATUS(status) == 126) WEXITSTATUS(status) == 126)
exit(WEXITSTATUS(status)); exit(WEXITSTATUS(status));
if (status != 0)
nerrors++;
} }
if (WIFSIGNALED(status)) if (WIFSIGNALED(status))
exit(125); exit(125);