proc-api/src/opt/parseopt.cpp

42 lines
1005 B
C++

///////////////////////////////////////////////////////////////////////////////
// Tyler Perkins
// 28-4-22
// parseopt implementation
//
#include "parseopt.hpp"
void help(char* progName){
std::cout << "Usage: " << progName << " [FLAGS]\n";
std::cout << "Options:\n";
std::cout << " [-p] Port to listen on\n";
std::cout << " [-h] Display this help message\n\n";
exit(1);
}
option_flags* parse_options(int argc, char** argv){
char c;
option_flags* ret = new option_flags;
ret->port = 5000;
while((c = getopt(argc, argv, optarg_string)) != -1){
switch(c){
case 'p':
std::cout << optarg << "\n";
ret->port = atoi(optarg);
break;
case '?':
std::cerr << "Unkown option: " << (char)optopt << "\n";
case 'h':
help(argv[0]);
break;
default:
abort();
}
}
return ret;
}