gen: Added quarters parameter to license generator
This commit is contained in:
@@ -57,13 +57,14 @@ std::string Generator::getPublicKeyFilename()
|
||||
return m_publicKeyFile;
|
||||
}
|
||||
|
||||
std::string Generator::encodeLicense(
|
||||
std::string Generator::encodeLicenseByVersion(
|
||||
const std::string& user,
|
||||
const std::string& licenseType,
|
||||
size_t numberOfUsers,
|
||||
const std::string& version
|
||||
){
|
||||
m_license = nullptr;
|
||||
|
||||
if (user.size() <= 0)
|
||||
{
|
||||
std::cout << "No user given" << std::endl;
|
||||
@@ -76,24 +77,31 @@ std::string Generator::encodeLicense(
|
||||
return "";
|
||||
}
|
||||
|
||||
if (!version.empty())
|
||||
if (version.empty())
|
||||
{
|
||||
Version tempVersion = Version::fromString(version);
|
||||
if (tempVersion.isValid())
|
||||
{
|
||||
createLicense(user, licenseType, tempVersion.toShortString(), false, numberOfUsers);
|
||||
}
|
||||
std::cout << "No version given" << std::endl;
|
||||
return "";
|
||||
}
|
||||
|
||||
if (!m_license)
|
||||
Version tempVersion = Version::fromString(version);
|
||||
if (tempVersion.isValid())
|
||||
{
|
||||
createLicense(user, licenseType, getExpireVersion(), false, numberOfUsers);
|
||||
createLicense(user, licenseType, tempVersion.toShortString(), false, numberOfUsers);
|
||||
}
|
||||
|
||||
return m_license->getLicenseString();
|
||||
}
|
||||
|
||||
std::string Generator::encodeLicense(
|
||||
std::string Generator::encodeLicenseByQuarters(
|
||||
const std::string& user,
|
||||
const std::string& licenseType,
|
||||
size_t numberOfUsers,
|
||||
size_t quarters
|
||||
){
|
||||
return encodeLicenseByVersion(user, licenseType, numberOfUsers, getExpireVersion(quarters));
|
||||
}
|
||||
|
||||
std::string Generator::encodeLicenseByDays(
|
||||
const std::string& user,
|
||||
const std::string& licenseType,
|
||||
size_t numberOfUsers,
|
||||
@@ -273,11 +281,11 @@ int Generator::mapMonthToVersion(int month)
|
||||
return (month-1)/3+1;
|
||||
}
|
||||
|
||||
std::string Generator::getExpireVersion(int versions)
|
||||
std::string Generator::getExpireVersion(int quarters)
|
||||
{
|
||||
boost::gregorian::date today = boost::gregorian::day_clock::local_day();
|
||||
int monthNumber = today.month().as_number();
|
||||
Version version(today.year(), mapMonthToVersion(monthNumber));
|
||||
version += versions;
|
||||
version += quarters;
|
||||
return version.toShortString();
|
||||
}
|
||||
|
||||
@@ -18,13 +18,19 @@ public:
|
||||
Generator();
|
||||
~Generator();
|
||||
|
||||
std::string encodeLicense(
|
||||
std::string encodeLicenseByVersion(
|
||||
const std::string& user,
|
||||
const std::string& licenseType,
|
||||
size_t numberOfUsers,
|
||||
const std::string& version
|
||||
);
|
||||
std::string encodeLicense(
|
||||
std::string encodeLicenseByQuarters(
|
||||
const std::string& user,
|
||||
const std::string& licenseType,
|
||||
size_t numberOfUsers,
|
||||
size_t quarters
|
||||
);
|
||||
std::string encodeLicenseByDays(
|
||||
const std::string& user,
|
||||
const std::string& licenseType,
|
||||
size_t numberOfUsers,
|
||||
@@ -52,7 +58,7 @@ public:
|
||||
size_t numberOfUsers
|
||||
);
|
||||
|
||||
std::string getExpireVersion(int versions = 4);
|
||||
std::string getExpireVersion(int quarters);
|
||||
void setVersionLine(int year, int minorVersion);
|
||||
private:
|
||||
int mapMonthToVersion(int month);
|
||||
|
||||
@@ -21,6 +21,7 @@ bool process_command_line(int argc, char** argv)
|
||||
std::string publicKeyFile;
|
||||
std::string licenseFile = "";
|
||||
std::string type = "";
|
||||
int quarters = 4;
|
||||
int days = 0;
|
||||
int numberOfUsers = 0;
|
||||
|
||||
@@ -33,6 +34,7 @@ bool process_command_line(int argc, char** argv)
|
||||
po::options_description keygen_description("Options Keygeneration");
|
||||
keygen_description.add_options()
|
||||
("version,v", po::value<std::string>(&version), "Versionnumber (in format 20xx.x) until Sourcetrail valid")
|
||||
("quarters,q", po::value<int>(&quarters), "Number of quarters Sourcetrail is valid from now")
|
||||
("users,u", po::value<int>(&numberOfUsers), "Number of users")
|
||||
("licenseType,t", po::value<std::string>(&type), "License Type of ")
|
||||
("expiration,e", po::value<int>(&days), "Valid for <value> days");
|
||||
@@ -117,11 +119,15 @@ bool process_command_line(int argc, char** argv)
|
||||
{
|
||||
if (days > 0)
|
||||
{
|
||||
keygen.encodeLicense(user, type, numberOfUsers, days);
|
||||
keygen.encodeLicenseByDays(user, type, numberOfUsers, days);
|
||||
}
|
||||
else if (!version.empty())
|
||||
{
|
||||
keygen.encodeLicenseByVersion(user, type, numberOfUsers, version);
|
||||
}
|
||||
else
|
||||
{
|
||||
keygen.encodeLicense(user, type, numberOfUsers, version);
|
||||
keygen.encodeLicenseByQuarters(user, type, numberOfUsers, quarters);
|
||||
}
|
||||
keygen.printLicenseAndWriteItToFile();
|
||||
}
|
||||
|
||||
@@ -46,7 +46,7 @@ public:
|
||||
generator.loadPrivateKeyFromString(generator.getPrivateKeyPEMFileAsString());
|
||||
|
||||
License license;
|
||||
license.loadFromString(generator.encodeLicense("TestUser", "VolumeLicense", 20, ""));
|
||||
license.loadFromString(generator.encodeLicenseByQuarters("TestUser", "VolumeLicense", 20, 4));
|
||||
|
||||
TS_ASSERT_EQUALS(license.getNumberOfUsers(), 20);
|
||||
}
|
||||
@@ -59,13 +59,13 @@ public:
|
||||
|
||||
License license;
|
||||
license.loadPublicKeyFromString(generator.getPublicKeyPEMFileAsString());
|
||||
license.loadFromString(generator.encodeLicense("User", "", 0, 10));
|
||||
license.loadFromString(generator.encodeLicenseByDays("User", "", 0, 10));
|
||||
|
||||
TS_ASSERT(license.isValid());
|
||||
TS_ASSERT_EQUALS(license.getTimeLeft(), 10);
|
||||
|
||||
license.loadPublicKeyFromString(generator.getPublicKeyPEMFileAsString());
|
||||
license.loadFromString(generator.encodeLicense("User", "", 0, -10));
|
||||
license.loadFromString(generator.encodeLicenseByDays("User", "", 0, -10));
|
||||
|
||||
TS_ASSERT(!license.isValid());
|
||||
// -1 and not -10 since it means it is expired
|
||||
@@ -79,15 +79,15 @@ public:
|
||||
|
||||
License license;
|
||||
|
||||
license.loadFromString(generator.encodeLicense("TestUser", "Private License", 1, "2017.4"));
|
||||
license.loadFromString(generator.encodeLicenseByVersion("TestUser", "Private License", 1, "2017.4"));
|
||||
std::string testInfo = "TestUser\nPrivate License\n1 user\nvalid up to version: 2017.4";
|
||||
TS_ASSERT_EQUALS(license.getLicenseInfo(), testInfo);
|
||||
|
||||
license.loadFromString(generator.encodeLicense("TestUser", "Volume License", 20, "2017.3"));
|
||||
license.loadFromString(generator.encodeLicenseByVersion("TestUser", "Volume License", 20, "2017.3"));
|
||||
testInfo = "TestUser\nVolume License\n20 users\nvalid up to version: 2017.3";
|
||||
TS_ASSERT_EQUALS(license.getLicenseInfo(), testInfo);
|
||||
|
||||
license.loadFromString(generator.encodeLicense("TestUser", "Private/Academic Single User License", 0, "2018.1"));
|
||||
license.loadFromString(generator.encodeLicenseByVersion("TestUser", "Private/Academic Single User License", 0, "2018.1"));
|
||||
testInfo = "TestUser\nPrivate/Academic Single User License\nnot registered for commercial development\nvalid up to version: 2018.1";
|
||||
TS_ASSERT_EQUALS(license.getLicenseInfo(), testInfo);
|
||||
}
|
||||
@@ -99,7 +99,7 @@ public:
|
||||
|
||||
generator.loadPrivateKeyFromString(generator.getPrivateKeyPEMFileAsString());
|
||||
License license;
|
||||
license.loadFromString(generator.encodeLicense("TestUser", "Private License", 20, "2017.3"));
|
||||
license.loadFromString(generator.encodeLicenseByVersion("TestUser", "Private License", 20, "2017.3"));
|
||||
license.loadPublicKeyFromString(generator.getPublicKeyPEMFileAsString());
|
||||
|
||||
TS_ASSERT_EQUALS(license.getUser(), "TestUser");
|
||||
|
||||
Reference in New Issue
Block a user