8 Commits

Author SHA1 Message Date
25ed8d4f43 Merge pull request #120 from UMSKT/nodashes-cmd
Command line argument to remove dashes from product key
2025-06-18 21:50:16 -05:00
324688e9ef Update cli.cpp 2025-06-18 21:33:07 -05:00
6ae46d6aa2 duh 2025-06-18 21:24:37 -05:00
e07c080ee8 Update cli.h 2025-06-18 21:18:11 -05:00
ce9ff7e624 Revert "Update cli.h"
This reverts commit 714895c61b.
2025-06-18 21:17:08 -05:00
714895c61b Update cli.h 2025-06-18 21:13:50 -05:00
6ecf9c5309 Update cli.h 2025-06-18 21:09:15 -05:00
9f7d53dab3 Update cli.cpp 2025-06-18 21:08:02 -05:00
2 changed files with 25 additions and 5 deletions

View File

@ -71,7 +71,8 @@ void CLI::showHelp(char *argv[]) {
fmt::print("\t-u --upgrade\tspecifies the Product Key will be an \"Upgrade\" version\n"); fmt::print("\t-u --upgrade\tspecifies the Product Key will be an \"Upgrade\" version\n");
fmt::print("\t-V --validate\tproduct key to validate signature\n"); fmt::print("\t-V --validate\tproduct key to validate signature\n");
fmt::print("\t-N --nonewlines\tdisables newlines (for easier embedding in other apps)\n"); fmt::print("\t-N --nonewlines\tdisables newlines (for easier embedding in other apps)\n");
fmt::print("\t-o --override\tDisables version check for confirmation ID's, if you need this send an issue on GitHub"); fmt::print("\t-o --override\tDisables version check for confirmation IDs, if you need this send an issue on GitHub\n");
fmt::print("\t-D --nodashes\tDisables dashes in product keys and confirmation IDs (for easier copy-pasting)");
fmt::print("\n"); fmt::print("\n");
} }
@ -94,6 +95,7 @@ int CLI::parseCommandLine(int argc, char* argv[], Options* options) {
false, false,
false, false,
false, false,
false,
MODE_BINK1998_GENERATE, MODE_BINK1998_GENERATE,
WINDOWS WINDOWS
}; };
@ -214,6 +216,8 @@ int CLI::parseCommandLine(int argc, char* argv[], Options* options) {
options->nonewlines = true; options->nonewlines = true;
} else if (arg == "-o" || arg == "--override") { } else if (arg == "-o" || arg == "--override") {
options->overrideVersion = true; options->overrideVersion = true;
} else if (arg == "-D" || arg == "--nodashes") {
options->nodashes = true;
} else { } else {
options->error = true; options->error = true;
} }
@ -327,9 +331,14 @@ void CLI::printID(DWORD *pid) {
void CLI::printKey(char *pk) { void CLI::printKey(char *pk) {
assert(strlen(pk) >= PK_LENGTH); assert(strlen(pk) >= PK_LENGTH);
std::string keyFormat = "{}-{}-{}-{}-{}";
if (this->options.nodashes == true) {
keyFormat = "{}{}{}{}{}";
}
std::string spk = pk; std::string spk = pk;
fmt::print("{}-{}-{}-{}-{}", fmt::print(keyFormat,
spk.substr(0,5), spk.substr(0,5),
spk.substr(5,5), spk.substr(5,5),
spk.substr(10,5), spk.substr(10,5),
@ -591,7 +600,17 @@ int CLI::ConfirmationID() {
return 1; return 1;
case SUCCESS: case SUCCESS:
if (this->options.nodashes == true) {
int j = 0;
for (int i = 0; confirmation_id[i] != '\0'; ++i) {
if (confirmation_id[i] != '-') {
confirmation_id[j++] = confirmation_id[i];
}
}
confirmation_id[j] = '\0';
}
fmt::print(confirmation_id); fmt::print(confirmation_id);
if (this->options.nonewlines == false) { if (this->options.nonewlines == false) {
fmt::print("\n"); fmt::print("\n");
} }

View File

@ -69,6 +69,7 @@ struct Options {
bool list; bool list;
bool nonewlines; bool nonewlines;
bool overrideVersion; bool overrideVersion;
bool nodashes;
MODE applicationMode; MODE applicationMode;
ACTIVATION_ALGORITHM activationMode; ACTIVATION_ALGORITHM activationMode;
@ -93,7 +94,7 @@ public:
static int parseCommandLine(int argc, char* argv[], Options *options); static int parseCommandLine(int argc, char* argv[], Options *options);
static int validateCommandLine(Options* options, char *argv[], json *keys); static int validateCommandLine(Options* options, char *argv[], json *keys);
static void printID(DWORD *pid); static void printID(DWORD *pid);
static void printKey(char *pk); void printKey(char *pk);
static bool stripKey(const char *in_key, char out_key[PK_LENGTH]); static bool stripKey(const char *in_key, char out_key[PK_LENGTH]);
int BINK1998Generate(); int BINK1998Generate();