open-story-teller/story-editor-legacy/ost_convert/main.cpp
2023-12-13 13:44:23 +01:00

56 lines
1.7 KiB
C++

#include <iostream>
#include "pack_archive.h"
#include "command_line.h"
// 3ade540306254fffa22b9025ac3678d9
// be8949f60d854f54828419a1bdaed36a
static const std::string test_file = "be8949f60d854f54828419a1bdaed36a.pk";
int main(int argc, char** argv)
{
std::cout << "OST convert tool" << std::endl;
bool oPrintHelp = false;
std::string packFileName;
bool extract = false;
// First configure all possible command line options.
CommandLine args("A demonstration of the simple command line parser.");
args.addArgument({"-f", "--string"}, &packFileName, "A string value");
// args.addArgument({"-i", "--integer"}, &oInteger, "A integer value");
// args.addArgument({"-u", "--unsigned"}, &oUnsigned, "A unsigned value");
// args.addArgument({"-d", "--double"}, &oDouble, "A float value");
// args.addArgument({"-f", "--float"}, &oFloat, "A double value");
args.addArgument({"-e", "--bool"}, &extract, "A bool value");
args.addArgument({"-h", "--help"}, &oPrintHelp,
"Print this help. This help message is actually so long "
"that it requires a line break!");
// Then do the actual parsing.
try {
args.parse(argc, argv);
} catch (std::runtime_error const& e) {
std::cout << e.what() << std::endl;
return -1;
}
// When oPrintHelp was set to true, we print a help message and exit.
if (oPrintHelp)
{
args.printHelp();
return 0;
}
PackArchive pack;
if (extract)
{
std::cout << "Extracting pack: " << packFileName << std::endl;
pack.DecipherAll(test_file);
}
return 0;
}