30 lines
756 B
C
30 lines
756 B
C
#include <unistd.h>
|
|
#include <string.h>
|
|
#include <stdlib.h>
|
|
#include <stdio.h>
|
|
int main(int argc, char **argv) {
|
|
char **execargv = malloc((argc + 2) * sizeof *execargv);
|
|
for(int i = 1; i < argc; ++i) {
|
|
char **arg = &execargv[i+ 2];
|
|
if(argv[i][0] == '/') {
|
|
const char *home = "/home/";
|
|
if(!memcmp(home, argv[i], strlen(home))){
|
|
*arg = argv[i];
|
|
goto exec;
|
|
}
|
|
const char *gentooPath = "/bedrock/strata/gentoo";
|
|
*arg = malloc(strlen(gentooPath) + strlen(argv[i]) + 2);
|
|
strcpy(*arg, gentooPath);
|
|
strcat(*arg, argv[i]);
|
|
printf("Path: %s\n", *arg);
|
|
}
|
|
else *arg = argv[i];
|
|
}
|
|
exec:
|
|
execargv[0] = "strat";
|
|
execargv[1] = "arch";
|
|
execargv[2] = "/usr/bin/nvim";
|
|
execargv[argc + 2] = NULL;
|
|
execvp(execargv[0], execargv);
|
|
}
|