#include "Launcher.h" #include #include #include namespace fs = boost::filesystem; using std::string; using std::vector; Launcher::Launcher(boost::program_options::variables_map &options) : options(options) { string fn = options["application"].as(); if(fn == "-") { std::stringstream tmp; tmp << std::cin.rdbuf(); if(!app.read(tmp, ResourceFile::Format::macbin)) throw std::runtime_error("Could not load application from stdin."); } else { if(!app.read(fn)) throw std::runtime_error("Could not load application file."); } tempDir = fs::absolute(fs::unique_path()); fs::create_directories(tempDir); appPath = tempDir / "Application"; outPath = tempDir / "out"; fs::ofstream out(outPath); } Launcher::Launcher(boost::program_options::variables_map &options, ResourceFile::Format f) : Launcher(options) { app.write(appPath.string(), f); } void Launcher::DumpOutput() { fs::ifstream in(outPath); std::cout << in.rdbuf(); } Launcher::~Launcher() { fs::remove_all(tempDir); }