mirror of
https://github.com/systemd/systemd.git
synced 2024-12-04 15:53:41 +08:00
execute: introduce exec_command_set() for easy setting for command lines
This commit is contained in:
parent
1a63a75010
commit
26fd040d4a
28
execute.c
28
execute.c
@ -1061,6 +1061,34 @@ void exec_command_append_list(ExecCommand **l, ExecCommand *e) {
|
||||
*l = e;
|
||||
}
|
||||
|
||||
int exec_command_set(ExecCommand *c, const char *path, ...) {
|
||||
va_list ap;
|
||||
char **l, *p;
|
||||
|
||||
assert(c);
|
||||
assert(path);
|
||||
|
||||
va_start(ap, path);
|
||||
l = strv_new_ap(path, ap);
|
||||
va_end(ap);
|
||||
|
||||
if (!l)
|
||||
return -ENOMEM;
|
||||
|
||||
if (!(p = strdup(path))) {
|
||||
strv_free(l);
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
free(c->path);
|
||||
c->path = p;
|
||||
|
||||
strv_free(c->argv);
|
||||
c->argv = l;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const char* const exec_output_table[_EXEC_OUTPUT_MAX] = {
|
||||
[EXEC_OUTPUT_CONSOLE] = "console",
|
||||
[EXEC_OUTPUT_NULL] = "null",
|
||||
|
@ -169,6 +169,7 @@ char *exec_command_line(ExecCommand *c);
|
||||
void exec_command_dump(ExecCommand *c, FILE *f, const char *prefix);
|
||||
void exec_command_dump_list(ExecCommand *c, FILE *f, const char *prefix);
|
||||
void exec_command_append_list(ExecCommand **l, ExecCommand *e);
|
||||
int exec_command_set(ExecCommand *c, const char *path, ...);
|
||||
|
||||
void exec_context_init(ExecContext *c);
|
||||
void exec_context_done(ExecContext *c);
|
||||
|
Loading…
Reference in New Issue
Block a user