Add flag -q/--quiet to suppress non-errors.

This commit is contained in:
Jakcron
2022-03-29 17:37:26 +08:00
parent b1629a4aa6
commit 0715b3d5b9
2 changed files with 22 additions and 6 deletions
+18 -4
View File
@@ -356,6 +356,8 @@ private:
ctrtool::SettingsInitializer::SettingsInitializer(const std::vector<std::string>& args) : ctrtool::SettingsInitializer::SettingsInitializer(const std::vector<std::string>& args) :
Settings(), Settings(),
mModuleLabel("ctrtool::SettingsInitializer"), mModuleLabel("ctrtool::SettingsInitializer"),
mSuppressOutput(false),
mShowKeys(false),
mFallBackTitleKey(), mFallBackTitleKey(),
mFallBackSeed(), mFallBackSeed(),
mSeedDbPath() mSeedDbPath()
@@ -365,6 +367,15 @@ ctrtool::SettingsInitializer::SettingsInitializer(const std::vector<std::string>
if (infile.path.isNull()) if (infile.path.isNull())
throw tc::ArgumentException(mModuleLabel, "No input file was specified."); throw tc::ArgumentException(mModuleLabel, "No input file was specified.");
// suppress output if requested
if (mSuppressOutput)
{
opt.info = false;
opt.verbose = false;
exefs.list_fs = false;
romfs.list_fs = false;
}
opt.keybag = KeyBagInitializer(opt.is_dev, mFallBackTitleKey, mSeedDbPath, mFallBackSeed); opt.keybag = KeyBagInitializer(opt.is_dev, mFallBackTitleKey, mSeedDbPath, mFallBackSeed);
// determine filetype if not manually specified // determine filetype if not manually specified
@@ -417,9 +428,10 @@ void ctrtool::SettingsInitializer::parse_args(const std::vector<std::string>& ar
// get option flags // get option flags
opts.registerOptionHandler(std::shared_ptr<FlagOptionHandler>(new FlagOptionHandler(opt.info, {"-i", "--info"}))); opts.registerOptionHandler(std::shared_ptr<FlagOptionHandler>(new FlagOptionHandler(opt.info, {"-i", "--info"})));
opts.registerOptionHandler(std::shared_ptr<FlagOptionHandler>(new FlagOptionHandler(opt.verbose, {"-v", "--verbose"})));
opts.registerOptionHandler(std::shared_ptr<FlagOptionHandler>(new FlagOptionHandler(mSuppressOutput, {"-q", "--quiet"})));
opts.registerOptionHandler(std::shared_ptr<FlagOptionHandler>(new FlagOptionHandler(opt.plain, {"-p", "--plain"}))); opts.registerOptionHandler(std::shared_ptr<FlagOptionHandler>(new FlagOptionHandler(opt.plain, {"-p", "--plain"})));
opts.registerOptionHandler(std::shared_ptr<FlagOptionHandler>(new FlagOptionHandler(opt.raw, {"-r", "--raw"}))); opts.registerOptionHandler(std::shared_ptr<FlagOptionHandler>(new FlagOptionHandler(opt.raw, {"-r", "--raw"})));
opts.registerOptionHandler(std::shared_ptr<FlagOptionHandler>(new FlagOptionHandler(opt.verbose, {"-v", "--verbose"})));
opts.registerOptionHandler(std::shared_ptr<FlagOptionHandler>(new FlagOptionHandler(opt.verify, {"-y", "--verify"}))); opts.registerOptionHandler(std::shared_ptr<FlagOptionHandler>(new FlagOptionHandler(opt.verify, {"-y", "--verify"})));
opts.registerOptionHandler(std::shared_ptr<FlagOptionHandler>(new FlagOptionHandler(opt.is_dev, {"-d", "--dev"}))); opts.registerOptionHandler(std::shared_ptr<FlagOptionHandler>(new FlagOptionHandler(opt.is_dev, {"-d", "--dev"})));
opts.registerOptionHandler(std::shared_ptr<FlagOptionHandler>(new FlagOptionHandler(opt.show_keys, {"--showkeys"}))); opts.registerOptionHandler(std::shared_ptr<FlagOptionHandler>(new FlagOptionHandler(opt.show_keys, {"--showkeys"})));
@@ -593,14 +605,16 @@ void ctrtool::SettingsInitializer::usage_text()
fmt::print(stderr, fmt::print(stderr,
"Options:\n" "Options:\n"
" -i, --info Show file info.\n" //" -i, --info Show file info.\n"
" This is the default action.\n" //" This is the default action.\n"
//" -x, --extract Extract data from file.\n" //" -x, --extract Extract data from file.\n"
//" This is also the default action.\n" //" This is also the default action.\n"
" -v, --verbose Give verbose output.\n"
" -q, --quiet Only output errors (regular output is silenced).\n"
" -p, --plain Extract data without decrypting.\n" " -p, --plain Extract data without decrypting.\n"
" -r, --raw Keep raw data, don't unpack.\n" " -r, --raw Keep raw data, don't unpack.\n"
//" -k, --keyset=file Specify keyset file.\n" //" -k, --keyset=file Specify keyset file.\n"
" -v, --verbose Give verbose output.\n"
" -y, --verify Verify hashes and signatures.\n" " -y, --verify Verify hashes and signatures.\n"
" -d, --dev Decrypt with development keys instead of retail.\n" " -d, --dev Decrypt with development keys instead of retail.\n"
//" --unitsize=size Set media unit size (default 0x200).\n" //" --unitsize=size Set media unit size (default 0x200).\n"
+4 -2
View File
@@ -40,9 +40,9 @@ struct Settings
struct Options struct Options
{ {
bool info; bool info;
bool verbose;
bool plain; bool plain;
bool raw; bool raw;
bool verbose;
bool verify; bool verify;
bool show_keys; bool show_keys;
bool is_dev; bool is_dev;
@@ -123,9 +123,9 @@ struct Settings
infile.path = tc::Optional<tc::io::Path>(); infile.path = tc::Optional<tc::io::Path>();
opt.info = true; opt.info = true;
opt.verbose = false;
opt.plain = false; opt.plain = false;
opt.raw = false; opt.raw = false;
opt.verbose = false;
opt.verify = false; opt.verify = false;
opt.show_keys = false; opt.show_keys = false;
opt.is_dev = false; opt.is_dev = false;
@@ -168,6 +168,8 @@ private:
std::string mModuleLabel; std::string mModuleLabel;
bool mSuppressOutput;
bool mShowKeys; bool mShowKeys;
tc::Optional<std::string> mFallBackTitleKey; tc::Optional<std::string> mFallBackTitleKey;
tc::Optional<std::string> mFallBackSeed; tc::Optional<std::string> mFallBackSeed;