Parse args

This commit is contained in:
2026-03-29 21:45:52 -07:00
parent c3860f1950
commit 46e35a1ce4
4 changed files with 49 additions and 2 deletions

View File

@@ -85,6 +85,28 @@ namespace OptionLib {
}
}
}
void parse(const int argc, const char ** argv) {
std::unordered_map<std::string, std::string> kv;
std::string key, value, line;
for(int i = 0; i < argc; i++) {
line = std::string(argv[i]);
if (line.size() < 1 || line[0] == '#') continue; // skip comment lines TODO make better
auto pos = line.find('=');
if (pos == std::string::npos) continue; // skip invalid lines
std::string key = line.substr(0, pos);
std::string value = line.substr(pos + 1);
kv[key] = value;
}
for (auto* opt : getOptions()) {
if (kv.count(opt->key)) {
opt->setFromString(kv[opt->key]);
}
}
}
};