142 lines
3.6 KiB
Ruby
142 lines
3.6 KiB
Ruby
![]() |
=begin
|
||
|
--------------------------------------------------------------------------------
|
||
|
|
||
|
Check for the required parameters of base directory, username, email address,
|
||
|
revision label and candidate label.
|
||
|
|
||
|
Offer to run the licenser to be sure that we are ready to go.
|
||
|
|
||
|
--------------------------------------------------------------------------------
|
||
|
--------------------------------------------------------------------------------
|
||
|
=end
|
||
|
|
||
|
$: << File.dirname(File.expand_path(__FILE__))
|
||
|
require '_common'
|
||
|
|
||
|
#
|
||
|
# ------------------------------------------------------------------------------------
|
||
|
# Runs the licenser against both VIVO and Vitro, and shows the results.
|
||
|
# ------------------------------------------------------------------------------------
|
||
|
#
|
||
|
|
||
|
class LicenserCaller
|
||
|
def call_licenser(property_file)
|
||
|
properties = PropertyFileReader.read(property_file)
|
||
|
l = Licenser.new(properties)
|
||
|
l.process
|
||
|
l.report(properties)
|
||
|
return l.success?
|
||
|
end
|
||
|
|
||
|
def initialize()
|
||
|
require "#{Settings.vitro_path}/utilities/licenser/licenser"
|
||
|
require "#{Settings.vitro_path}/utilities/licenser/property_file_reader"
|
||
|
|
||
|
puts "Scanning VIVO..."
|
||
|
vivo_success = call_licenser("#{Settings.vivo_path}/config/licenser/licenser.properties")
|
||
|
puts "Scanning Vitro..."
|
||
|
vitro_success = call_licenser("#{Settings.vitro_path}/webapp/config/licenser/licenser.properties")
|
||
|
if vivo_success && vitro_success
|
||
|
puts "Licenser was successful"
|
||
|
else
|
||
|
puts "Licenser found problems"
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
#
|
||
|
# Show the current value of the setting, ask for a replacement value, validate it, and set it.
|
||
|
#
|
||
|
def do_setting(getter, validator, setter, label, format="a string")
|
||
|
v1 = getter.call
|
||
|
currently = v1.empty? ? "Currently not set" : "Currently '#{v1}'"
|
||
|
v2 = prompt "#{label}?\n(#{format})\n(#{currently})"
|
||
|
|
||
|
v2 = v1 if v2.empty?
|
||
|
v2 = validator.call(v2)
|
||
|
|
||
|
if v2.empty?
|
||
|
raise InputException.new("Can't run without #{label}")
|
||
|
elsif v1 == v2
|
||
|
puts "Keeping #{label} as '#{v2}'"
|
||
|
puts
|
||
|
else
|
||
|
puts "Setting #{label} to '#{v2}'"
|
||
|
setter.call(v2)
|
||
|
puts
|
||
|
end
|
||
|
v2
|
||
|
end
|
||
|
|
||
|
def get_base_directory()
|
||
|
do_setting(
|
||
|
Settings.method(:base_directory),
|
||
|
Settings.method(:confirm_base_directory),
|
||
|
Settings.method(:base_directory=),
|
||
|
"Git base directory",
|
||
|
"holds Vitro and VIVO repositories")
|
||
|
end
|
||
|
|
||
|
def get_user_name()
|
||
|
do_setting(
|
||
|
Settings.method(:username),
|
||
|
Settings.method(:confirm_username),
|
||
|
Settings.method(:username=),
|
||
|
"Git user.name")
|
||
|
end
|
||
|
|
||
|
def get_email()
|
||
|
do_setting(
|
||
|
Settings.method(:email),
|
||
|
Settings.method(:confirm_email),
|
||
|
Settings.method(:email=),
|
||
|
"Git user.email")
|
||
|
end
|
||
|
|
||
|
def get_release_label()
|
||
|
do_setting(
|
||
|
Settings.method(:release_label),
|
||
|
Settings.method(:confirm_release_label),
|
||
|
Settings.method(:release_label=),
|
||
|
"Release label",
|
||
|
"like '3.2' or '3.2.1'")
|
||
|
end
|
||
|
|
||
|
def get_candidate_label()
|
||
|
do_setting(
|
||
|
Settings.method(:candidate_label),
|
||
|
Settings.method(:confirm_candidate_label),
|
||
|
Settings.method(:candidate_label=),
|
||
|
"Release candidate label",
|
||
|
"like 'rc1' or 'tc3' or 'final'")
|
||
|
end
|
||
|
|
||
|
def run_licenser()
|
||
|
puts "It's a good idea to check the licenses before proceeding."
|
||
|
yn = prompt "Ready to run the licenser? (y/n)"
|
||
|
if (yn.downcase == 'y')
|
||
|
LicenserCaller.new()
|
||
|
else
|
||
|
puts "OK - forget it."
|
||
|
end
|
||
|
end
|
||
|
|
||
|
#
|
||
|
# ------------------------------------------------------------------------------------
|
||
|
# Main method
|
||
|
# ------------------------------------------------------------------------------------
|
||
|
#
|
||
|
|
||
|
begin
|
||
|
get_base_directory()
|
||
|
get_user_name()
|
||
|
get_email()
|
||
|
get_release_label()
|
||
|
get_candidate_label()
|
||
|
run_licenser()
|
||
|
rescue BadState
|
||
|
puts
|
||
|
puts "#{$!.message} - Aborting."
|
||
|
puts
|
||
|
end
|