win32_service_manager 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/win32_service_manager +39 -1
- data/lib/win32_service_manager.rb +2 -2
- metadata +1 -1
data/bin/win32_service_manager
CHANGED
@@ -1,6 +1,44 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
+
require 'yaml'
|
2
3
|
|
3
4
|
require File.expand_path(
|
4
5
|
File.join(File.dirname(__FILE__), '..', 'lib', 'win32_service_manager'))
|
5
6
|
|
6
|
-
|
7
|
+
def help
|
8
|
+
abort <<-EOHELP
|
9
|
+
Usage: #{File.basename($0)}
|
10
|
+
Commands:
|
11
|
+
- create
|
12
|
+
- start
|
13
|
+
- stop
|
14
|
+
- delete
|
15
|
+
- status
|
16
|
+
- list
|
17
|
+
|
18
|
+
Create takes 3 arguments, name, command and description.
|
19
|
+
All other commands take a single argument, the name of the service.
|
20
|
+
The list command takes no further arguments
|
21
|
+
EOHELP
|
22
|
+
end
|
23
|
+
|
24
|
+
y case ARGV.shift
|
25
|
+
when /create/
|
26
|
+
unless ARGV.size >= 2
|
27
|
+
puts "Need more for create: name, command, and optional description"
|
28
|
+
help
|
29
|
+
end
|
30
|
+
args = [ARGV.shift, ARGV.shift, ARGV.shift].compact.map { |a| a.dup }
|
31
|
+
Win32ServiceManager.new.create(*args)
|
32
|
+
when /start/
|
33
|
+
Win32ServiceManager.new.start(ARGV.shift)
|
34
|
+
when /stop/
|
35
|
+
Win32ServiceManager.new.stop(ARGV.shift)
|
36
|
+
when /delete/
|
37
|
+
Win32ServiceManager.new.delete(ARGV.shift)
|
38
|
+
when /status/
|
39
|
+
Win32ServiceManager.new.status(ARGV.shift)
|
40
|
+
when /list/
|
41
|
+
Win32ServiceManager.new.list
|
42
|
+
else
|
43
|
+
help
|
44
|
+
end
|
@@ -2,7 +2,7 @@ require 'win32_service_manager/core_ext/struct_to_hash'
|
|
2
2
|
|
3
3
|
class Win32ServiceManager
|
4
4
|
|
5
|
-
VERSION = '0.1.
|
5
|
+
VERSION = '0.1.3'
|
6
6
|
def self.version; VERSION; end
|
7
7
|
def self.load_dependencies; require 'win32/service'; end
|
8
8
|
|
@@ -17,7 +17,7 @@ class Win32ServiceManager
|
|
17
17
|
# and inserted into the registry using Win32::Service.
|
18
18
|
# One recommended pattern is to store persisence details about the service
|
19
19
|
# as yaml in the optional description field.
|
20
|
-
def create(name, command,
|
20
|
+
def create(name, command, description = nil, options = {})
|
21
21
|
defaults = {
|
22
22
|
:service_type => Win32::Service::WIN32_OWN_PROCESS,
|
23
23
|
:start_type => Win32::Service::AUTO_START,
|