-
Notifications
You must be signed in to change notification settings - Fork 120
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #20 from FMotalleb/patch-2
Feat: added more arguments to `generator.license.rb`
- Loading branch information
Showing
1 changed file
with
58 additions
and
10 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,6 +6,12 @@ | |
public_key_path = nil | ||
private_key_path = nil | ||
features_json_path = nil | ||
license_name="Tim Cook" | ||
license_company="Apple Computer, Inc." | ||
license_email="[email protected]" | ||
license_plan='ultimate' | ||
license_user_count=2147483647 | ||
license_expire_year=2500 | ||
|
||
require 'optparse' | ||
OptionParser.new do |opts| | ||
|
@@ -31,6 +37,30 @@ | |
license_json_path = File.expand_path(v) | ||
end | ||
|
||
opts.on("--license-name NAME", "Specify license name (optional) [#{license_name}]") do |v| | ||
license_name = v | ||
end | ||
|
||
opts.on("--license-company COMPANY", "Specify license company (optional) [#{license_company}]") do |v| | ||
license_company = v | ||
end | ||
|
||
opts.on("--license-email EMAIL-ADDRESS", "Specify license email address (optional) [#{license_email}]") do |v| | ||
license_email = v | ||
end | ||
|
||
opts.on("--license-plan PLAN", "Specify license plan (optional) [#{license_plan} (default), premium, starter]") do |v| | ||
license_plan = v | ||
end | ||
|
||
opts.on("--license-user-count COUNT", "Specify license user count (optional) [#{license_user_count} (default)]") do |v| | ||
license_user_count = v.to_i | ||
end | ||
|
||
opts.on("--license-expire-year YEAR", "Specify license expire year (optional) [#{license_expire_year} (default)]") do |v| | ||
license_expire_year = v.to_i | ||
end | ||
|
||
opts.on("-h", "--help", "Prints this help") do | ||
puts opts | ||
exit | ||
|
@@ -44,6 +74,24 @@ | |
exit 1 | ||
end | ||
|
||
if license_plan != 'ultimate' && license_plan != 'premium' && license_plan != 'starter' | ||
puts "[!] license plan is set to #{license_plan} which is not one of [ultimate, premium, starter]" | ||
puts "[!] use -h for help" | ||
exit 1 | ||
end | ||
|
||
if Time.now.year > license_expire_year | ||
puts "[!] license expiry year is set to #{license_expire_year} which is less than current year, this value must be greater than current year" | ||
puts "[!] use -h for help" | ||
exit 1 | ||
end | ||
|
||
if license_user_count < 1 | ||
puts "[!] license user count is set to #{license_user_count} which is less minumum user count possible" | ||
puts "[!] use -h for help" | ||
exit 1 | ||
end | ||
|
||
# ========== | ||
|
||
puts "[*] loading keys..." | ||
|
@@ -59,7 +107,7 @@ | |
puts "[*] loading features from #{features_json_path}" | ||
require 'json' | ||
FEATURE_LIST = JSON.parse(File.read(features_json_path)) | ||
else | ||
else | ||
FEATURE_LIST = [] | ||
end | ||
puts "[*] total features to inject: #{FEATURE_LIST.size}" | ||
|
@@ -74,29 +122,29 @@ | |
|
||
# don't use gitlab inc, search `gl_team_license` in lib for details | ||
license.licensee = { | ||
"Name" => "Tim Cook", | ||
"Company" => "Apple Computer, Inc.", | ||
"Email" => "[email protected]" | ||
"Name" => license_name, | ||
"Company" => license_company, | ||
"Email" => license_email | ||
} | ||
|
||
# required of course | ||
license.starts_at = Date.new(1976, 4, 1) | ||
|
||
puts Date.new() | ||
# required since gem gitlab-license v2.2.1 | ||
license.expires_at = Date.new(2500, 4, 1) | ||
license.expires_at = Date.new(license_expire_year, 4, 1) | ||
|
||
# prevent gitlab crash at | ||
# notification_start_date = trial? ? expires_at - NOTIFICATION_DAYS_BEFORE_TRIAL_EXPIRY : block_changes_at | ||
license.block_changes_at = Date.new(2500, 4, 1) | ||
license.block_changes_at = Date.new(license_expire_year, 4, 1) | ||
|
||
# required | ||
license.restrictions = { | ||
plan: 'ultimate', | ||
plan: license_plan, | ||
# STARTER_PLAN = 'starter' | ||
# PREMIUM_PLAN = 'premium' | ||
# ULTIMATE_PLAN = 'ultimate' | ||
|
||
active_user_count: 2147483647, | ||
active_user_count: license_user_count, | ||
# required, just dont overflow | ||
} | ||
|
||
|
@@ -105,7 +153,7 @@ | |
# so here by we inject all features into restrictions | ||
# see scan.rb for a list of features that we are going to inject | ||
for feature in FEATURE_LIST | ||
license.restrictions[feature] = 2147483647 | ||
license.restrictions[feature] = license_user_count | ||
end | ||
|
||
puts "[*] validating license..." | ||
|