execute: add lif_execute_opts structure

This commit is contained in:
Ariadne Conill 2020-07-23 08:22:26 -06:00
parent a567d5d0f5
commit 4006b38ffa
2 changed files with 13 additions and 2 deletions

View file

@ -29,7 +29,7 @@
#define SHELL "/bin/sh"
bool
lif_execute_fmt(char *const envp[], const char *fmt, ...)
lif_execute_fmt(const struct lif_execute_opts *opts, char *const envp[], const char *fmt, ...)
{
char cmdbuf[4096];
va_list va;
@ -41,6 +41,12 @@ lif_execute_fmt(char *const envp[], const char *fmt, ...)
pid_t child;
char *argv[] = { SHELL, "-c", cmdbuf, NULL };
if (opts->verbose)
puts(cmdbuf);
if (opts->mock)
return true;
if (posix_spawn(&child, SHELL, NULL, NULL, argv, envp) != 0)
{
fprintf(stderr, "execute '%s': %s\n", cmdbuf, strerror(errno));

View file

@ -19,6 +19,11 @@
#include <stdarg.h>
#include <stdbool.h>
extern bool lif_execute_fmt(char *const envp[], const char *fmt, ...);
struct lif_execute_opts {
bool verbose;
bool mock;
};
extern bool lif_execute_fmt(const struct lif_execute_opts *opts, char *const envp[], const char *fmt, ...);
#endif