#include "simulation.hpp" #include #include #include int main(int argc, char* argv[]) { const std::string selected = argc > 1 ? argv[1] : "all"; if (argc > 2 || selected == "--help" || selected == "-h" || (selected != "all" && std::find(ota::scenarios().begin(), ota::scenarios().end(), selected) == ota::scenarios().end())) { std::ostream& output = (argc == 2 && (selected == "--help" || selected == "-h")) ? std::cout : std::cerr; output << "Usage: ab-simulate [all"; for (const auto& scenario : ota::scenarios()) output << '|' << scenario; output << "]\n"; return &output == &std::cout ? 0 : 2; } try { for (const auto& scenario : ota::scenarios()) { if (selected != "all" && selected != scenario) continue; std::cout << "\n=== " << scenario << " ===\n"; ota::TemporaryDirectory directory; ota::run_scenario(scenario, directory.path(), &std::cout); } } catch (const std::exception& error) { std::cerr << "Simulation failed: " << error.what() << '\n'; return 1; } }