|
|
|
@ -5,6 +5,9 @@
|
|
|
|
|
|
|
|
|
|
#include "funcs.h"
|
|
|
|
|
|
|
|
|
|
#define RUN_IF_MATCH(func, name, ac, av) \
|
|
|
|
|
if(!strcmp(name, #func)) \
|
|
|
|
|
return func(ac, av)
|
|
|
|
|
/*
|
|
|
|
|
BSD 3-Clause License
|
|
|
|
|
|
|
|
|
@ -38,42 +41,21 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
int matchExec(char *name, int argc, char *argv[]) {
|
|
|
|
|
if (!strcmp(name,"arch")) {
|
|
|
|
|
arch(argc, argv);
|
|
|
|
|
}
|
|
|
|
|
if (!strcmp(name,"basename")) {
|
|
|
|
|
bn(argc, argv);
|
|
|
|
|
}
|
|
|
|
|
if (!strcmp(name,"cat")) {
|
|
|
|
|
cat(argc, argv);
|
|
|
|
|
}
|
|
|
|
|
if (!strcmp(name,"chroot")) {
|
|
|
|
|
chr(argc, argv);
|
|
|
|
|
}
|
|
|
|
|
if (!strcmp(name,"cp")) {
|
|
|
|
|
cp(argc, argv);
|
|
|
|
|
}
|
|
|
|
|
if (!strcmp(name,"ls")) {
|
|
|
|
|
ls(argc, argv);
|
|
|
|
|
}
|
|
|
|
|
if (!strcmp(name,"pwd")) {
|
|
|
|
|
pwd(argc, argv);
|
|
|
|
|
}
|
|
|
|
|
if (!strcmp(name,"rm")) {
|
|
|
|
|
rm(argc, argv);
|
|
|
|
|
}
|
|
|
|
|
if (!strcmp(name,"uname")) {
|
|
|
|
|
un(argc, argv);
|
|
|
|
|
}
|
|
|
|
|
if (!strcmp(name,"whoami")) {
|
|
|
|
|
whoami(argc, argv);
|
|
|
|
|
}
|
|
|
|
|
if (!strcmp(name,"yes")) {
|
|
|
|
|
yes(argc, argv);
|
|
|
|
|
}
|
|
|
|
|
int ret;
|
|
|
|
|
RUN_IF_MATCH(arch, name, argc, argv);
|
|
|
|
|
RUN_IF_MATCH(bn, name, argc, argv);
|
|
|
|
|
RUN_IF_MATCH(cat, name, argc, argv);
|
|
|
|
|
RUN_IF_MATCH(chr, name, argc, argv);
|
|
|
|
|
RUN_IF_MATCH(cp, name, argc, argv);
|
|
|
|
|
RUN_IF_MATCH(ls, name, argc, argv);
|
|
|
|
|
RUN_IF_MATCH(pwd, name, argc, argv);
|
|
|
|
|
RUN_IF_MATCH(rm, name, argc, argv);
|
|
|
|
|
RUN_IF_MATCH(un, name, argc, argv);
|
|
|
|
|
RUN_IF_MATCH(whoami, name, argc, argv);
|
|
|
|
|
RUN_IF_MATCH(yes, name, argc, argv);
|
|
|
|
|
if (!strcmp(name,"dbox")) {
|
|
|
|
|
char **newArgv = argv + 1;
|
|
|
|
|
matchExec(newArgv[0], argc-1, newArgv);
|
|
|
|
|
return matchExec(newArgv[0], argc-1, newArgv);
|
|
|
|
|
}
|
|
|
|
|
return 0; //TODO: return return of exec files
|
|
|
|
|
}
|
|
|
|
|