Class: Trinidad::Daemon::Configuration
- Inherits:
-
Object
- Object
- Trinidad::Daemon::Configuration
- Defined in:
- lib/trinidad_daemon/configuration.rb
Instance Method Summary collapse
- #collect_windows_opts(options_ask) ⇒ Object
- #configure ⇒ Object
- #configure_jruby_opts ⇒ Object
- #configure_unix_daemon ⇒ Object
- #configure_windows_service ⇒ Object
-
#initialize(stdin = STDIN, stdout = STDOUT) ⇒ Configuration
constructor
A new instance of Configuration.
- #initialize_paths ⇒ Object
Constructor Details
#initialize(stdin = STDIN, stdout = STDOUT) ⇒ Configuration
Returns a new instance of Configuration.
9 10 11 12 |
# File 'lib/trinidad_daemon/configuration.rb', line 9 def initialize(stdin = STDIN, stdout = STDOUT) @stdin = stdin @stdout = stdout end |
Instance Method Details
#collect_windows_opts(options_ask) ⇒ Object
22 23 24 25 26 27 |
# File 'lib/trinidad_daemon/configuration.rb', line 22 def collect_windows_opts() << '(separated by `;`)' name_ask = 'Service name? {Alphanumeric and spaces only}' name_default = 'Trinidad' @trinidad_name = ask(name_ask, name_default) end |
#configure ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/trinidad_daemon/configuration.rb', line 39 def configure @app_path = ask_path('Application path?') @trinidad_options = ["-d #{@app_path}"] = 'Trinidad options?' = '-e production' collect_windows_opts() if windows? @trinidad_options << ask(, ) @jruby_home = ask_path('JRuby home?', default_jruby_home) @ruby_compat_version = ask('Ruby 1.8.x or 1.9.x compatibility?', default_ruby_compat_version) @jruby_opts = configure_jruby_opts initialize_paths windows? ? configure_windows_service : configure_unix_daemon puts 'Done.' end |
#configure_jruby_opts ⇒ Object
29 30 31 32 33 34 35 36 37 |
# File 'lib/trinidad_daemon/configuration.rb', line 29 def configure_jruby_opts opts = [] opts << "-Djruby.home=#{@jruby_home}" opts << "-Djruby.lib=#{File.join(@jruby_home, 'lib')}" opts << "-Djruby.script=jruby" opts << "-Djruby.daemon.module.name=Trinidad" opts << "-Djruby.compat.version=#{@ruby_compat_version}" opts end |
#configure_unix_daemon ⇒ Object
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/trinidad_daemon/configuration.rb', line 56 def configure_unix_daemon @jsvc = ask_path('Jsvc path?', `which jsvc`.chomp) @java_home = ask_path('Java home?', default_java_home) @output_path = ask_path('init.d output path?', '/etc/init.d') @pid_file = ask_path('pid file?', '/var/run/trinidad/trinidad.pid') @log_file = ask_path('log file?', '/var/log/trinidad/trinidad.log') daemon = ERB.new( File.read( File.('../../init.d/trinidad.erb', File.dirname(__FILE__)) ) ).result(binding) puts "Moving trinidad to #{@output_path}" tmp_file = "#{@output_path}/trinidad" File.open(tmp_file, 'w') do |file| file.write(daemon) end FileUtils.chmod(0744, tmp_file) end |
#configure_windows_service ⇒ Object
78 79 80 81 82 83 84 85 86 87 88 89 90 |
# File 'lib/trinidad_daemon/configuration.rb', line 78 def configure_windows_service prunsrv = File.join(@jars_path, 'prunsrv.exe') command = %Q{//IS//Trinidad --DisplayName="#{@trinidad_name}" \ --Install="#{prunsrv}" --Jvm=auto --StartMode=jvm --StopMode=jvm \ --StartClass=com.msp.procrun.JRubyService --StartMethod=start \ --StartParams="#{@trinidad_daemon_path};#{@trinidad_options.join(";")}" \ --StopClass=com.msp.procrun.JRubyService --StopMethod=stop --Classpath="#{@classpath.join(";")}" \ --StdOutput=auto --StdError=auto \ --LogPrefix="#{@trinidad_name.downcase.gsub(/\W/,'')}" \ ++JvmOptions="#{@jruby_opts.join(";")}" } system "#{prunsrv} #{command}" end |
#initialize_paths ⇒ Object
14 15 16 17 18 19 20 |
# File 'lib/trinidad_daemon/configuration.rb', line 14 def initialize_paths @trinidad_daemon_path = File.('../../trinidad_daemon.rb', __FILE__) @jars_path = File.('../../../trinidad-libs', __FILE__) @classpath = ['jruby-jsvc.jar', 'commons-daemon.jar'].map { |jar| File.join(@jars_path, jar) } @classpath << File.join(@jruby_home, 'lib', 'jruby.jar') end |