Module: Capsaicin::Service::Command
- Included in:
- Capsaicin::Service
- Defined in:
- lib/capsaicin/service/command.rb
Instance Method Summary collapse
-
#command(id, start, stop, *args) ⇒ Object
Defines a recipe to control a generic Windows NT service.
-
#command?(start, stop) ⇒ Boolean
Check for the existance of a generic Windows NT service.
Instance Method Details
#command(id, start, stop, *args) ⇒ Object
Defines a recipe to control a generic Windows NT service.
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/capsaicin/service/command.rb', line 12 def command(id,start,stop,*args) = Hash===args.last ? args.pop : {} svc_name = id.to_s svc_desc = next_description(:reset) || (svc_name.capitalize unless .delete(:hide)) extras = args.pop if Array === args.last via = .delete(:via) namespace id do desc "#{svc_desc}: #{SVC_ACTION_CAPTIONS[:start]}" if svc_desc task :start, do send(via || fetch(:run_method, :local_run), start) end desc "#{svc_desc}: #{SVC_ACTION_CAPTIONS[:stop]}" if svc_desc task :stop, do send(via || fetch(:run_method, :local_run), stop) end desc "#{svc_desc}: #{SVC_ACTION_CAPTIONS[:restart]}" if svc_desc task :restart, do stop start end instance_eval { yield } if block_given? end end |
#command?(start, stop) ⇒ Boolean
Check for the existance of a generic Windows NT service.
6 7 8 |
# File 'lib/capsaicin/service/command.rb', line 6 def command?(start, stop) files.executable? start and files.executable? stop end |