Don't bother supporting a filename

This commit is contained in:
Eric Mertens
2023-01-31 09:44:30 -08:00
parent 2f7949b8da
commit df195e65b5
12 changed files with 7 additions and 44 deletions

View File

@@ -8,15 +8,6 @@
#include <memory>
#include <optional>
namespace aocpp {
/// @brief Return the selected input stream or run the test suite
/// @param argc Number of arguments
/// @param argv Command line arguments
auto Startup(int argc, char ** argv) -> std::unique_ptr<std::istream, void(*)(std::istream*)>;
}
auto Main(std::istream & in, std::ostream & out) -> void;
#endif

View File

@@ -10,30 +10,14 @@
#define DOCTEST_CONFIG_IMPLEMENT
#include <doctest.h>
namespace aocpp {
auto Startup(int argc, char ** argv) -> std::unique_ptr<std::istream, void(*)(std::istream*)> {
if (std::getenv("DOCTEST")) {
exit(doctest::Context{argc, argv}.run());
}
switch (argc) {
case 2:
return {new std::ifstream{argv[1]}, [](std::istream* p) { delete p; }};
case 1:
return {&std::cin, [](std::istream*){}};
default:
std::cerr << "bad arguments\n";
exit(EXIT_FAILURE);
}
}
}
auto main(int argc, char ** argv) -> int
{
if (std::getenv("DOCTEST")) {
return doctest::Context{argc, argv}.run();
}
try {
Main(*aocpp::Startup(argc, argv), std::cout);
Main(std::cin, std::cout);
} catch (std::exception const& e) {
std::cerr << "Program failed: " << e.what() << std::endl;
return 1;