packages/engine/scram-node/targets/scram-node/src/ScramWorker.cpp
Source code
cpp
#include "ScramWorker.h"
#include <boost/program_options.hpp>
#include <exception>
#include "targets/scram-cli/utils/ParseArguments.h"
#include "targets/scram-cli/utils/RunScram.h"
namespace po = boost::program_options;
ScramWorker::ScramWorker(std::vector<std::string> args)
: args(std::move(args)){};
void ScramWorker::Execute() {
// Convert vector of strings to argc and argv format for command-line parsing.
std::vector<char *> argv;
for (std::string &s: args) {
argv.push_back(&s[0]);
}
argv.push_back(NULL);
try {
// Parse arguments and run the scram command, catching any exceptions.
po::variables_map vm;
ScramCLI::ParseArguments(argv.size() - 1, argv.data(), &vm);
ScramCLI::RunScram(vm);
} catch (const std::exception &e) {
// If an exception occurs, throw it with a specific message.
throw std::runtime_error(e.what());
}
}Updated on 2025-11-11 at 16:51:09 +0000
