diff --git a/ctrtool/src/Settings.cpp b/ctrtool/src/Settings.cpp index 1cfafbe..a41cacf 100644 --- a/ctrtool/src/Settings.cpp +++ b/ctrtool/src/Settings.cpp @@ -356,6 +356,8 @@ private: ctrtool::SettingsInitializer::SettingsInitializer(const std::vector& args) : Settings(), mModuleLabel("ctrtool::SettingsInitializer"), + mSuppressOutput(false), + mShowKeys(false), mFallBackTitleKey(), mFallBackSeed(), mSeedDbPath() @@ -365,6 +367,15 @@ ctrtool::SettingsInitializer::SettingsInitializer(const std::vector if (infile.path.isNull()) 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); // determine filetype if not manually specified @@ -417,9 +428,10 @@ void ctrtool::SettingsInitializer::parse_args(const std::vector& ar // get option flags opts.registerOptionHandler(std::shared_ptr(new FlagOptionHandler(opt.info, {"-i", "--info"}))); + opts.registerOptionHandler(std::shared_ptr(new FlagOptionHandler(opt.verbose, {"-v", "--verbose"}))); + opts.registerOptionHandler(std::shared_ptr(new FlagOptionHandler(mSuppressOutput, {"-q", "--quiet"}))); opts.registerOptionHandler(std::shared_ptr(new FlagOptionHandler(opt.plain, {"-p", "--plain"}))); opts.registerOptionHandler(std::shared_ptr(new FlagOptionHandler(opt.raw, {"-r", "--raw"}))); - opts.registerOptionHandler(std::shared_ptr(new FlagOptionHandler(opt.verbose, {"-v", "--verbose"}))); opts.registerOptionHandler(std::shared_ptr(new FlagOptionHandler(opt.verify, {"-y", "--verify"}))); opts.registerOptionHandler(std::shared_ptr(new FlagOptionHandler(opt.is_dev, {"-d", "--dev"}))); opts.registerOptionHandler(std::shared_ptr(new FlagOptionHandler(opt.show_keys, {"--showkeys"}))); @@ -593,14 +605,16 @@ void ctrtool::SettingsInitializer::usage_text() fmt::print(stderr, "Options:\n" - " -i, --info Show file info.\n" - " This is the default action.\n" + //" -i, --info Show file info.\n" + //" This is the default action.\n" //" -x, --extract Extract data from file.\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" " -r, --raw Keep raw data, don't unpack.\n" //" -k, --keyset=file Specify keyset file.\n" - " -v, --verbose Give verbose output.\n" + " -y, --verify Verify hashes and signatures.\n" " -d, --dev Decrypt with development keys instead of retail.\n" //" --unitsize=size Set media unit size (default 0x200).\n" diff --git a/ctrtool/src/Settings.h b/ctrtool/src/Settings.h index be4ef4b..e3301fb 100644 --- a/ctrtool/src/Settings.h +++ b/ctrtool/src/Settings.h @@ -40,9 +40,9 @@ struct Settings struct Options { bool info; + bool verbose; bool plain; bool raw; - bool verbose; bool verify; bool show_keys; bool is_dev; @@ -123,9 +123,9 @@ struct Settings infile.path = tc::Optional(); opt.info = true; + opt.verbose = false; opt.plain = false; opt.raw = false; - opt.verbose = false; opt.verify = false; opt.show_keys = false; opt.is_dev = false; @@ -168,6 +168,8 @@ private: std::string mModuleLabel; + bool mSuppressOutput; + bool mShowKeys; tc::Optional mFallBackTitleKey; tc::Optional mFallBackSeed;