diff options
Diffstat (limited to 'lib/include')
-rw-r--r-- | lib/include/service.h | 14 | ||||
-rw-r--r-- | lib/include/util.h | 2 |
2 files changed, 12 insertions, 4 deletions
diff --git a/lib/include/service.h b/lib/include/service.h index 76d48ce..593b221 100644 --- a/lib/include/service.h +++ b/lib/include/service.h @@ -44,21 +44,27 @@ enum { TGT_MAX }; +typedef struct exec_t { + char **argv; + char *raw_argv; + + struct exec_t *next; +} exec_t; + typedef struct service_t { int type; /* SVC_* service type */ int target; /* TGT_* service target */ char *name; /* canonical service name */ char *desc; /* description string */ - char **exec; /* command lines to execute */ - size_t num_exec; /* number of command lines */ + exec_t *exec; /* command lines to execute */ char *ctty; /* controlling tty or log file */ int rspwn_limit; /* maximum respawn count */ char **before; /* services that must be executed later */ - size_t num_before; char **after; /* services that must be executed first */ - size_t num_after; + char *raw_after; + char *raw_before; pid_t pid; int status; /* process exit status */ diff --git a/lib/include/util.h b/lib/include/util.h index 0ed7002..a6e96fa 100644 --- a/lib/include/util.h +++ b/lib/include/util.h @@ -73,6 +73,8 @@ char *rdline(int fd, int argc, const char *const *argv); */ int unescape(char *src); +char **split_argv(char *str); + /* Search through an array of enum_map_t entries to resolve a string to a numeric value. The end of the map is indicated by a sentinel entry |