9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
# File 'lib/ShrubServiceInstaller.rb', line 9
def self.run(argv)
service_name = 'Shrub Server'
ruby_bin = Config::CONFIG['bindir']
file_dir = File.dirname(File.expand_path(__FILE__))
@@ruby_exe = File.join("#{ruby_bin}", "ruby.exe")
file_path = File.join(File.dirname(File.expand_path(__FILE__)), 'ShrubService.rb')
cmd = "#{@@ruby_exe} \"#{file_path}\" #{@@ruby_exe}"
if argv[0] == 'install'
puts "Creating service for #{cmd}"
Win32::Service.new(service_name, nil,
:display_name => service_name,
:desired_access => Win32::Service::ALL_ACCESS,
:service_type => Win32::Service::WIN32_OWN_PROCESS,
:start_type => Win32::Service::DEMAND_START,
:error_control => Win32::Service::ERROR_IGNORE,
:binary_path_name => cmd,
:load_order_group => 'Network',
:dependencies => nil,
:description => 'Executes ruby code sent from another machine'
)
exit
elsif argv[0] == 'uninstall'
Win32::Service.delete(service_name)
exit
elseif argv.length > 0
puts 'I can\'t understand the command.'
exit
end
end
|