mirror of
https://github.com/systemd/systemd.git
synced 2024-11-05 06:52:22 +03: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;
|
*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] = {
|
static const char* const exec_output_table[_EXEC_OUTPUT_MAX] = {
|
||||||
[EXEC_OUTPUT_CONSOLE] = "console",
|
[EXEC_OUTPUT_CONSOLE] = "console",
|
||||||
[EXEC_OUTPUT_NULL] = "null",
|
[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(ExecCommand *c, FILE *f, const char *prefix);
|
||||||
void exec_command_dump_list(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);
|
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_init(ExecContext *c);
|
||||||
void exec_context_done(ExecContext *c);
|
void exec_context_done(ExecContext *c);
|
||||||
|
Loading…
Reference in New Issue
Block a user