Improve command line parsing

Improve command line argument parser.  This will make it easier to add
code to read command line options (which previously weren't available).
This commit is contained in:
luca0N! 2022-06-09 22:07:08 -03:00
parent 3d44312e93
commit 8b07320f76
Signed by: luca0N
GPG Key ID: 2E7B4655CF16D7D6
1 changed files with 14 additions and 14 deletions

View File

@ -47,25 +47,25 @@ void printIntro() {
int main(int argc, char *argv[]) {
printIntro();
std::string path;
std::string path = "";
// Parse cmdline options
switch (argc) {
case 1:
path = ".";
std::cout << "Assuming working directory is \".\""
<< std::endl;
break;
case 2:
path = argv[1];
std::cout << "Using specified directory: "
<< path << std::endl;
break;
default:
for (int argi = 1; argi < argc; argi++) {
if (argv[argi][0] == '-') {
// This is a cmdline option (starts with a dash).
} else if (path == "") {
path = argv[argi];
} else {
std::cerr << "error: website directory was already " <<
"provided (`" << path << "'), refusing to continue with `" <<
argv[argi] << "'.\n";
printUsage(argv[0]);
exit(RETURN_FAILED_INVALID_SYNTAX);
break;
}
}
std::cout << "Using specified directory: " << path << "\n";
SwgContext ctx;
parse_config(&ctx, path);