in include/poac/subcmd/run.hpp [22:62]
int _main(VS&& argv) {
namespace fs = boost::filesystem;
const auto node = io::file::yaml::load_config("name");
std::vector<std::string> program_args;
// poac run -v -- -h build
if (const auto result = std::find(argv.begin(), argv.end(), "--"); result != argv.end()) {
// -h build
program_args = std::vector<std::string>(result + 1, argv.end());
// -v
subcmd::build{}(std::vector<std::string>(argv.begin(), result));
}
else {
subcmd::build{}(std::move(argv));
}
const std::string project_name = node.at("name").as<std::string>();
const fs::path executable_path = fs::relative(io::file::path::current_build_bin_dir / project_name);
if (!fs::exists(executable_path)) {
return EXIT_FAILURE;
}
const std::string executable = executable_path.string();
util::command cmd(executable);
for (const auto &s : program_args) {
cmd += s;
}
std::cout << io::cli::green << "Running: " << io::cli::reset
<< "`" + executable + "`"
<< std::endl;
if (const auto ret = cmd.exec()) {
std::cout << *ret;
}
else {
std::cout << project_name + " returned 1" << std::endl;
}
return EXIT_SUCCESS;
}