]>
Commit | Line | Data |
---|---|---|
53e1b683 | 1 | /* SPDX-License-Identifier: LGPL-2.1+ */ |
f18edd8a | 2 | #pragma once |
89711996 | 3 | |
c6e47247 ZJS |
4 | #include <stdbool.h> |
5 | ||
89711996 ZJS |
6 | #include "time-util.h" |
7 | ||
c6e47247 ZJS |
8 | typedef int (*gather_stdout_callback_t) (int fd, void *arg); |
9 | ||
10 | enum { | |
11 | STDOUT_GENERATE, /* from generators to helper process */ | |
12 | STDOUT_COLLECT, /* from helper process to main process */ | |
13 | STDOUT_CONSUME, /* process data in main process */ | |
14 | _STDOUT_CONSUME_MAX, | |
15 | }; | |
16 | ||
4b05f0c9 MK |
17 | typedef enum { |
18 | EXEC_DIR_NONE = 0, /* No execdir flags */ | |
19 | EXEC_DIR_PARALLEL = 1 << 0, /* Execute scripts in parallel, if possible */ | |
20 | EXEC_DIR_IGNORE_ERRORS = 1 << 1, /* Ignore non-zero exit status of scripts */ | |
21 | } ExecDirFlags; | |
22 | ||
c6e47247 ZJS |
23 | int execute_directories( |
24 | const char* const* directories, | |
25 | usec_t timeout, | |
26 | gather_stdout_callback_t const callbacks[_STDOUT_CONSUME_MAX], | |
27 | void* const callback_args[_STDOUT_CONSUME_MAX], | |
78ec1bb4 | 28 | char *argv[], |
4b05f0c9 MK |
29 | char *envp[], |
30 | ExecDirFlags flags); | |
3303d1b2 ZJS |
31 | |
32 | extern const gather_stdout_callback_t gather_environment[_STDOUT_CONSUME_MAX]; |