diff --git a/websh.c b/websh.c index b21cdc2..0afe423 100644 --- a/websh.c +++ b/websh.c @@ -8,17 +8,60 @@ #include #include +#include #include #include static const char *pname; +void parse(int argc, char *argv[]) +{ + int eFlag = 0; + int hFlag = 0; + int sFlag = 0; + + int optInd = 0; + + while ((optInd = getopt(argc, argv, "ehs:")) != -1) { + switch (optInd) { + case 'e': + if (eFlag != 0) { + usage(); + } else { + eFlag = 1; + } + break; + case 'h': + if (hFlag != 0) { + usage(); + } else { + hFlag = 1; + } + break; + case 's': + if (sFlag != 0) { + usage(); + } else { + sFlag = 1; + char *sArg = optarg; + } + break; + case '?': + usage(); + default: + assert(0); + + } + } + + + pname = argv[0]; +} + int main(int argc, char *argv[]) { - pname = argv[0]; - - printf("[%s]\n", pname); + parse(argc, argv); return 0; }