#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <afblib/strlist.h>
int main(int argc, char** argv) {
strlist env = {0};
const char* cmdname = *argv++; --argc;
while (argc > 0 && strchr(*argv, '=')) {
if (!strlist_push(&env, *argv)) {
perror(""); exit(1);
}
--argc; ++argv;
}
if (argc == 0) {
fprintf(stderr, "Usage: %s param=value ... path arg...\n", cmdname);
exit(1);
}
if (!strlist_push0(&env)) {
perror(""); exit(1);
}
execve(argv[0], argv, env.list);
perror(argv[0]);
exit(1);
}