Josef Weidendorfer | b1bf95b | 2005-07-31 21:17:43 +0200 | [diff] [blame] | 1 | #ifndef RUN_COMMAND_H |
| 2 | #define RUN_COMMAND_H |
| 3 | |
Josef Weidendorfer | b1bf95b | 2005-07-31 21:17:43 +0200 | [diff] [blame] | 4 | enum { |
| 5 | ERR_RUN_COMMAND_FORK = 10000, |
| 6 | ERR_RUN_COMMAND_EXEC, |
Shawn O. Pearce | 4919bf0 | 2007-03-10 03:28:08 -0500 | [diff] [blame] | 7 | ERR_RUN_COMMAND_PIPE, |
Josef Weidendorfer | b1bf95b | 2005-07-31 21:17:43 +0200 | [diff] [blame] | 8 | ERR_RUN_COMMAND_WAITPID, |
| 9 | ERR_RUN_COMMAND_WAITPID_WRONG_PID, |
| 10 | ERR_RUN_COMMAND_WAITPID_SIGNAL, |
| 11 | ERR_RUN_COMMAND_WAITPID_NOEXIT, |
| 12 | }; |
| 13 | |
Shawn O. Pearce | f100089 | 2007-03-10 03:28:00 -0500 | [diff] [blame] | 14 | struct child_process { |
| 15 | const char **argv; |
Shawn O. Pearce | ebcb5d1 | 2007-03-10 03:28:05 -0500 | [diff] [blame] | 16 | pid_t pid; |
Shawn O. Pearce | 4919bf0 | 2007-03-10 03:28:08 -0500 | [diff] [blame] | 17 | int in; |
| 18 | unsigned close_in:1; |
Shawn O. Pearce | f100089 | 2007-03-10 03:28:00 -0500 | [diff] [blame] | 19 | unsigned no_stdin:1; |
| 20 | unsigned git_cmd:1; /* if this is to be git sub-command */ |
| 21 | unsigned stdout_to_stderr:1; |
| 22 | }; |
| 23 | |
Shawn O. Pearce | ebcb5d1 | 2007-03-10 03:28:05 -0500 | [diff] [blame] | 24 | int start_command(struct child_process *); |
| 25 | int finish_command(struct child_process *); |
Shawn O. Pearce | f100089 | 2007-03-10 03:28:00 -0500 | [diff] [blame] | 26 | int run_command(struct child_process *); |
| 27 | |
Shawn O. Pearce | 95d3c4f | 2006-12-30 21:55:22 -0500 | [diff] [blame] | 28 | #define RUN_COMMAND_NO_STDIN 1 |
Michal Ostrowski | 77cb17e | 2006-01-10 21:12:17 -0500 | [diff] [blame] | 29 | #define RUN_GIT_CMD 2 /*If this is to be git sub-command */ |
Shawn O. Pearce | cd83c74 | 2006-12-30 21:55:19 -0500 | [diff] [blame] | 30 | #define RUN_COMMAND_STDOUT_TO_STDERR 4 |
Shawn O. Pearce | 9b0b509 | 2006-12-30 21:55:15 -0500 | [diff] [blame] | 31 | int run_command_v_opt(const char **argv, int opt); |
Josef Weidendorfer | b1bf95b | 2005-07-31 21:17:43 +0200 | [diff] [blame] | 32 | |
| 33 | #endif |