add AR code translator shell

This commit is contained in:
Martin Michelsen
2023-11-18 21:33:45 -08:00
parent dd5873266d
commit 5499d29cc2
8 changed files with 185 additions and 7 deletions
+17 -1
View File
@@ -14,6 +14,11 @@
#include <thread>
#include <unordered_map>
#ifdef HAVE_RESOURCE_FILE
#include "ARCodeTranslator.hh"
#else
#include "ARCodeTranslator-Stub.hh"
#endif
#include "BMLArchive.hh"
#include "CatSession.hh"
#include "Compression.hh"
@@ -337,6 +342,7 @@ enum class Behavior {
GENERATE_ALL_DC_SERIAL_NUMBERS,
INSPECT_DC_SERIAL_NUMBER,
DC_SERIAL_NUMBER_SPEED_TEST,
AR_CODE_TRANSLATOR,
};
static bool behavior_takes_input_filename(Behavior b) {
@@ -382,7 +388,8 @@ static bool behavior_takes_input_filename(Behavior b) {
(b == Behavior::PARSE_OBJECT_GRAPH) ||
(b == Behavior::REPLAY_LOG) ||
(b == Behavior::CAT_CLIENT) ||
(b == Behavior::INSPECT_DC_SERIAL_NUMBER);
(b == Behavior::INSPECT_DC_SERIAL_NUMBER) ||
(b == Behavior::AR_CODE_TRANSLATOR);
}
static bool behavior_takes_output_filename(Behavior b) {
@@ -655,6 +662,8 @@ int main(int argc, char** argv) {
behavior = Behavior::INSPECT_DC_SERIAL_NUMBER;
} else if (!strcmp(argv[x], "dc-serial-number-speed-test")) {
behavior = Behavior::DC_SERIAL_NUMBER_SPEED_TEST;
} else if (!strcmp(argv[x], "ar-code-translator")) {
behavior = Behavior::AR_CODE_TRANSLATOR;
} else {
throw invalid_argument(string_printf("unknown command: %s (try --help)", argv[x]));
}
@@ -1946,6 +1955,13 @@ int main(int argc, char** argv) {
}
break;
case Behavior::AR_CODE_TRANSLATOR:
if (!input_filename || !strcmp(input_filename, "-")) {
throw invalid_argument("a directory name is required");
}
run_ar_code_translator(input_filename);
break;
case Behavior::REPLAY_LOG:
case Behavior::RUN_SERVER: {
bool is_replay = behavior == Behavior::REPLAY_LOG;