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-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-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");
}
@ -94,6 +95,7 @@ int CLI::parseCommandLine(int argc, char* argv[], Options* options) {
false,
false,
false,
false,
MODE_BINK1998_GENERATE,
WINDOWS
};
@ -214,6 +216,8 @@ int CLI::parseCommandLine(int argc, char* argv[], Options* options) {
options->nonewlines = true;
} else if (arg == "-o" || arg == "--override") {
options->overrideVersion = true;
} else if (arg == "-D" || arg == "--nodashes") {
options->nodashes = true;
} else {
options->error = true;
}
@ -327,9 +331,14 @@ void CLI::printID(DWORD *pid) {
void CLI::printKey(char *pk) {
assert(strlen(pk) >= PK_LENGTH);
std::string keyFormat = "{}-{}-{}-{}-{}";
if (this->options.nodashes == true) {
keyFormat = "{}{}{}{}{}";
}
std::string spk = pk;
fmt::print("{}-{}-{}-{}-{}",
fmt::print(keyFormat,
spk.substr(0,5),
spk.substr(5,5),
spk.substr(10,5),
@ -591,7 +600,17 @@ int CLI::ConfirmationID() {
return 1;
case SUCCESS:
fmt::print(confirmation_id);
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);
if (this->options.nonewlines == false) {
fmt::print("\n");
}

View File

@ -69,6 +69,7 @@ struct Options {
bool list;
bool nonewlines;
bool overrideVersion;
bool nodashes;
MODE applicationMode;
ACTIVATION_ALGORITHM activationMode;
@ -93,7 +94,7 @@ public:
static int parseCommandLine(int argc, char* argv[], Options *options);
static int validateCommandLine(Options* options, char *argv[], json *keys);
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]);
int BINK1998Generate();