#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <mach/mach.h>
#include "test_support.h"
extern const char** environ;
int main(int argc, const char* argv[], const char* envp[], const char* apple[]) {
if ( argc < 2 ) {
fprintf(stderr, "usage: nocr prog args...\n");
return EXIT_FAILURE;
}
_process process;
process.set_executable_path(argv[1]);
process.set_args(&argv[2]);
process.set_env(environ);
process.set_crash_handler(^(task_t task) {
exit(0);
});
process.set_exit_handler(^(pid_t pid) {
int status = 0;
(void)waitpid(pid, &status, 0);
if (WIFEXITED(status)) {
exit(0);
}
});
process.launch();
dispatch_main();
}