11 std::cout <<
"MonopolyArchiveTool --source <Source/monopoly> --output <workspace>\n"
12 " [--extra-root <directory>]... [--map <mapping.tsv>] [--strict]\n\n"
13 "TSV columns: bank<TAB>symbol<TAB>root<TAB>path\n"
14 "Root 0 is --source, other roots follow --extra-root order.\n"
15 "Reuses supplied disk payloads and converts compatible English.atr text.\n"
16 "No missing assets are fabricated. Partial banks remain isolated.\n"
17 "Exit 0: assembly/report produced (may be partial); 1: input/I/O error;\n"
18 " 2: CLI error; 3: --strict requested but a bank is incomplete.\n";
29 if (
key==
"--help") {
usage();
return 0; }
31 if (
key!=
"--source" &&
key!=
"--output" &&
key!=
"--extra-root" &&
key!=
"--map")
32 { std::cerr <<
"Unknown option: " <<
key <<
'\n';
usage();
return 2; }
33 if (++
n==
argc) { std::cerr <<
"Missing value for " <<
key <<
'\n';
return 2; }
35 const auto path=std::filesystem::path(std::u8string(
value.begin(),
value.end()));
44 const auto result=run(request);
47 catch (
const std::exception&
error)
49 std::cerr <<
"Archive assembly failed: " <<
error.what() <<
'\n';
std::optional< std::filesystem::path > mappings
std::vector< std::filesystem::path > extraRoots
std::filesystem::path outputRoot
std::filesystem::path sourceRoot