#include "command.h" #include "lslib.h" #include #include char* cmd; int main (ARGUMENTS) { #ifdef CHECK_LINK struct stat buf; #endif if (argc < 1) { return EXIT_FAILURE; } #ifdef CHECK_LINK lstat(argv[0], &buf); if (!S_ISLNK(buf.st_mode)) { if (argc < 2) { printf("usage: lazysphere [function [arguments]...]\n\n"); printf("currently defined functions:\n"); printf("\tdd, cat, yes, echo, printf, id, groups, ls, tail, head, ed, tee, true, false, tee, whoami, wc, xargs, tac, rm, cp, mkdir, mv, grep, chown, chmod, sync, su\n"); return EXIT_SUCCESS; } argc--; argv = &argv[1]; } #endif if (strncmp("./", argv[0], 2) == 0) { cmd = argv[0] + 2; } else { cmd = argv[0]; } if (streql(cmd, "dd")) { return dd_main(NEXT_ARGS); } else if (streql(cmd, "cat")) { return cat_main(NEXT_ARGS); } else if (streql(cmd, "yes")) { return yes_main(NEXT_ARGS); } else if (streql(cmd, "echo")) { return echo_main(NEXT_ARGS); } else if (streql(cmd, "printf")) { return printf_main(NEXT_ARGS); } else if (streql(cmd, "groups")) { return groups_main(NEXT_ARGS); } else if (streql(cmd, "id")) { return id_main(NEXT_ARGS); } else if (streql(cmd, "ls") || streql(cmd, "dir")) { return ls_main(NEXT_ARGS); } else if (streql(cmd, "lsd")) { printf("look at all the funny colors\n"); } else if (streql(cmd, "tail")) { return tail_main(NEXT_ARGS); } else if (streql(cmd, "head")) { return head_main(NEXT_ARGS); } else if (streql(cmd, "ed")) { return ed_main(NEXT_ARGS); } else if (streql(cmd, "tee")) { return tee_main(NEXT_ARGS); } else if (streql(cmd, "true")) { return EXIT_SUCCESS; } else if (streql(cmd, "false")) { return EXIT_FAILURE; } else if (streql(cmd, "whoami")) { return whoami_main(NEXT_ARGS); } else if (streql(cmd, "wc")) { return wc_main(NEXT_ARGS); } else if (streql(cmd, "xargs")) { return xargs_main(NEXT_ARGS); } else if (streql(cmd, "tac")) { return tac_main(NEXT_ARGS); } else if (streql(cmd, "rm")) { return rm_main(NEXT_ARGS); } else if (streql(cmd, "cp")) { return cp_main(NEXT_ARGS); } else if (streql(cmd, "mkdir")) { return mkdir_main(NEXT_ARGS); } else if (streql(cmd, "mv")) { return mv_main(NEXT_ARGS); } else if (streql(cmd, "grep")) { return grep_main(NEXT_ARGS); } else if (streql(cmd, "chown")) { return chown_main(NEXT_ARGS); } else if (streql(cmd, "chmod")) { return chmod_main(NEXT_ARGS); } else if (streql(cmd, "sync")) { return sync_main(NEXT_ARGS); } else if (streql(cmd, "su")) { return su_main(NEXT_ARGS); } else { fprintf(stderr, "lazysphere: invalid command %s\n", cmd); return EXIT_FAILURE; } return EXIT_SUCCESS; }