mirror of
https://github.com/jakcron/nstool
synced 2024-12-24 13:41:12 +00:00
[nstool] implement --partX command for nca.
This commit is contained in:
parent
3cbcba2bde
commit
b69dc62062
2 changed files with 57 additions and 6 deletions
|
@ -52,7 +52,6 @@ void UserSettings::showHelp()
|
|||
printf(" nstool [--listfs] [--fsdir <dir>] <file>\n");
|
||||
printf(" --listfs Print file system\n");
|
||||
printf(" --fsdir Extract file system to directory\n");
|
||||
/*
|
||||
printf("\n NCA (Nintendo Content Archive)\n");
|
||||
printf(" nstool [--listfs] [--bodykey <key> --titlekey <key>] [--part0 <dir> ...] <.nca file>\n");
|
||||
printf(" --listfs Print file system in embedded partitions\n");
|
||||
|
@ -62,7 +61,6 @@ void UserSettings::showHelp()
|
|||
printf(" --part1 Extract \"partition 1\" to directory \n");
|
||||
printf(" --part2 Extract \"partition 2\" to directory \n");
|
||||
printf(" --part3 Extract \"partition 3\" to directory \n");
|
||||
*/
|
||||
}
|
||||
|
||||
const std::string UserSettings::getInputPath() const
|
||||
|
@ -115,6 +113,26 @@ const sOptional<std::string>& UserSettings::getFsPath() const
|
|||
return mFsPath;
|
||||
}
|
||||
|
||||
const sOptional<std::string>& UserSettings::getPart0Path() const
|
||||
{
|
||||
return mPart0Path;
|
||||
}
|
||||
|
||||
const sOptional<std::string>& UserSettings::getPart1Path() const
|
||||
{
|
||||
return mPart1Path;
|
||||
}
|
||||
|
||||
const sOptional<std::string>& UserSettings::getPart2Path() const
|
||||
{
|
||||
return mPart2Path;
|
||||
}
|
||||
|
||||
const sOptional<std::string>& UserSettings::getPart3Path() const
|
||||
{
|
||||
return mPart3Path;
|
||||
}
|
||||
|
||||
|
||||
void UserSettings::populateCmdArgs(int argc, char** argv, sCmdArgs& cmd_args)
|
||||
{
|
||||
|
@ -226,10 +244,28 @@ void UserSettings::populateCmdArgs(int argc, char** argv, sCmdArgs& cmd_args)
|
|||
cmd_args.nca_bodykey = args[i+1];
|
||||
}
|
||||
|
||||
else if (args[i] == "-o")
|
||||
else if (args[i] == "--part0")
|
||||
{
|
||||
if (!hasParamter) throw fnd::Exception(kModuleName, args[i] + " requries a parameter.");
|
||||
cmd_args.output_path = args[i+1];
|
||||
cmd_args.part0_path = args[i+1];
|
||||
}
|
||||
|
||||
else if (args[i] == "--part1")
|
||||
{
|
||||
if (!hasParamter) throw fnd::Exception(kModuleName, args[i] + " requries a parameter.");
|
||||
cmd_args.part1_path = args[i+1];
|
||||
}
|
||||
|
||||
else if (args[i] == "--part2")
|
||||
{
|
||||
if (!hasParamter) throw fnd::Exception(kModuleName, args[i] + " requries a parameter.");
|
||||
cmd_args.part2_path = args[i+1];
|
||||
}
|
||||
|
||||
else if (args[i] == "--part3")
|
||||
{
|
||||
if (!hasParamter) throw fnd::Exception(kModuleName, args[i] + " requries a parameter.");
|
||||
cmd_args.part3_path = args[i+1];
|
||||
}
|
||||
|
||||
else
|
||||
|
|
|
@ -26,6 +26,10 @@ public:
|
|||
const sOptional<std::string>& getNormalPath() const;
|
||||
const sOptional<std::string>& getSecurePath() const;
|
||||
const sOptional<std::string>& getFsPath() const;
|
||||
const sOptional<std::string>& getPart0Path() const;
|
||||
const sOptional<std::string>& getPart1Path() const;
|
||||
const sOptional<std::string>& getPart2Path() const;
|
||||
const sOptional<std::string>& getPart3Path() const;
|
||||
|
||||
private:
|
||||
const std::string kModuleName = "UserSettings";
|
||||
|
@ -33,7 +37,6 @@ private:
|
|||
struct sCmdArgs
|
||||
{
|
||||
sOptional<std::string> input_path;
|
||||
sOptional<std::string> output_path;
|
||||
sOptional<bool> devkit_keys;
|
||||
sOptional<std::string> keyset_path;
|
||||
sOptional<std::string> file_type;
|
||||
|
@ -47,11 +50,14 @@ private:
|
|||
sOptional<std::string> fs_path;
|
||||
sOptional<std::string> nca_titlekey;
|
||||
sOptional<std::string> nca_bodykey;
|
||||
sOptional<std::string> part0_path;
|
||||
sOptional<std::string> part1_path;
|
||||
sOptional<std::string> part2_path;
|
||||
sOptional<std::string> part3_path;
|
||||
|
||||
void clear()
|
||||
{
|
||||
input_path.isSet = false;
|
||||
output_path.isSet = false;
|
||||
devkit_keys.isSet = false;
|
||||
keyset_path.isSet = false;
|
||||
file_type.isSet = false;
|
||||
|
@ -65,6 +71,10 @@ private:
|
|||
fs_path.isSet = false;
|
||||
nca_titlekey.isSet = false;
|
||||
nca_bodykey.isSet = false;
|
||||
part0_path.isSet = false;
|
||||
part1_path.isSet = false;
|
||||
part2_path.isSet = false;
|
||||
part3_path.isSet = false;
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -80,6 +90,11 @@ private:
|
|||
sOptional<std::string> mSecurePath;
|
||||
sOptional<std::string> mFsPath;
|
||||
|
||||
sOptional<std::string> mPart0Path;
|
||||
sOptional<std::string> mPart1Path;
|
||||
sOptional<std::string> mPart2Path;
|
||||
sOptional<std::string> mPart3Path;
|
||||
|
||||
void populateCmdArgs(int argc, char** argv, sCmdArgs& cmd_args);
|
||||
void populateKeyset(sCmdArgs& args);
|
||||
void populateUserSettings(sCmdArgs& args);
|
||||
|
|
Loading…
Reference in a new issue