(Not documented)
# File lib/tournament/webgui_installer.rb, line 18
18: def self.download(url, local_file, binary = false)
19: url = URI.parse(url)
20: open_flag = binary ? "wb" : "w"
21: Net::HTTP.start(url.host) do |http|
22: File.open(local_file, open_flag) do |file|
23: resp = http.get(url.path)
24: file.write(resp.body)
25: end
26: end
27: end
(Not documented)
# File lib/tournament/webgui_installer.rb, line 35
35: def adjust_configuration(config_options = {})
36: config_file = File.expand_path(File.join(@source_dir, 'config', 'initializers', 'pool.rb'))
37: target_config = File.expand_path(File.join(@install_dir, 'config', 'initializers', 'pool.rb'))
38: puts " -> Adjusting #{config_file} -> #{target_config}"
39: config_contents = File.read(config_file)
40: if config_options['email-server']
41: smtp_config = {}
42: smtp_config[:address] = config_options['email-server']
43: smtp_config[:port] = config_options['email-port']
44: smtp_config[:domain] = config_options['email-domain'] if config_options['email-domain']
45: smtp_config[:user_name] = config_options['email-user'] if config_options['email-user']
46: smtp_config[:password] = config_options['email-password'] if config_options['email-password']
47: smtp_config[:authentication] = config_options['email-auth'].to_sym if config_options['email-auth']
48: config_options['smtp-configuration'] = smtp_config
49: end
50: [
51: ['site-name', 'TOURNAMENT_TITLE'],
52: ['admin-email', 'ADMIN_EMAIL'],
53: ['relative-root', 'RELATIVE_URL_ROOT'],
54: ['smtp-configuration', 'SMTP_CONFIGURATION'],
55: ['prince-path', 'PRINCE_PATH']
56: ].each do |config_name, constant_name|
57: if config_options[config_name]
58: puts " -> Setting config option #{config_name} to #{config_options[config_name]}"
59: re = /#{constant_name} =([^\n]+)/m
60: config_contents.gsub!(re) do |m|
61: "#{constant_name} = #{config_options[config_name].inspect}\n"
62: end
63: else
64: puts " -> Not setting config option #{config_name}"
65: end
66: end
67:
68: puts " -> Writing #{target_config}"
69: File.open(target_config, "w") do |f|
70: f.write config_contents
71: end
72: end
(Not documented)
# File lib/tournament/webgui_installer.rb, line 74
74: def install_prince(prince_install_dir)
75: # install prince-xml if necessary
76: has_prince = ''
77: Open3.popen3('which prince') do |stdin, stdout, stderr|
78: has_prince << stdout.read
79: has_prince << stderr.read
80: end
81: if has_prince.empty? || has_prince =~ /no prince/
82: puts "Installing prince-xml ..."
83: Tournament::WebguiInstaller.download(PRINCE_TARBALL, "#{@tmp_dir}/prince.tgz", true)
84: system "tar xzf #{@tmp_dir}/prince.tgz -C #{@tmp_dir}"
85:
86: use_sudo = nil
87: if !File.exist?(prince_install_dir)
88: begin
89: FileUtils.makedirs(prince_install_dir)
90: rescue
91: puts "Could not create install dir for prince, using sudo"
92: use_sudo = "sudo "
93: end
94: elsif !File.writable?(prince_install_dir)
95: puts "Prince install directory is not writable, using sudo. You may be asked for your password."
96: use_sudo = "sudo "
97: end
98: puts "cd #{@tmp_dir}/prince-6.0r8-linux && #{use_sudo}bash install.sh"
99: system "cd #{@tmp_dir}/prince-6.0r8-linux && #{use_sudo}bash install.sh"
100: else
101: puts "prince-xml already installed: #{has_prince}"
102: end
103: end
(Not documented)
# File lib/tournament/webgui_installer.rb, line 29
29: def install_webgui
30: raise "Installation target #{@install_dir} exists and is NOT a directory." if File.exist?(@install_dir) && !File.directory?(@install_dir)
31: FileUtils.mkdir_p(@install_dir) unless File.exist?(@install_dir)
32: FileUtils.cp_r("#{@source_dir}/.", @install_dir, :preserve => false, :verbose => true)
33: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.