Module: Capsaicin::Service::LSB
- Included in:
- Capsaicin::Service
- Defined in:
- lib/capsaicin/service/lsb.rb
Constant Summary collapse
- DEFAULT_ACTIONS =
%w(status start stop restart)
Instance Method Summary collapse
-
#lsb(id, *args) ⇒ Object
Defines a recipe to control a generic LSB service.
-
#lsb?(id, basedir = "/etc/init.d") ⇒ Boolean
Check for the existance of a generic LSB initscript.
Instance Method Details
#lsb(id, *args) ⇒ Object
Defines a recipe to control a generic LSB service.
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 41 42 43 44 45 46 47 48 49 |
# File 'lib/capsaicin/service/lsb.rb', line 14 def lsb(id,*args) = Hash===args.last ? args.pop : {} basedir = .delete(:basedir) svc_name = id.to_s svc_desc = next_description(:reset) || (svc_name.capitalize unless .delete(:hide)) svc_actions = DEFAULT_ACTIONS svc_actions += args.pop if Array === args.last namespace id do svc_id = Symbol === id ? id.to_s : id.split(':').last desc "#{svc_desc}: #{SVC_ACTION_CAPTIONS[:status]}" if svc_desc task :default, do status end svc_cmd = Proc.new do case basedir when String; basedir + '/' + svc_id when NilClass; '/etc/init.d/' + svc_id when Symbol; fetch(basedir) + '/' + svc_id when Proc; basedir.call(svc_id) end end svc_actions.each do |svc_action| svc_action = svc_action.intern if String === svc_action desc "#{svc_desc}: #{SVC_ACTION_CAPTIONS[svc_action]}" if svc_desc task svc_action, do _run_method = basedir ? fetch(:run_method, :run) : :sudo send(_run_method, "#{svc_cmd.call} #{svc_action}") end end instance_eval { yield } if block_given? end end |
#lsb?(id, basedir = "/etc/init.d") ⇒ Boolean
Check for the existance of a generic LSB initscript.
8 9 10 |
# File 'lib/capsaicin/service/lsb.rb', line 8 def lsb?(id, basedir="/etc/init.d") files.exists? "#{basedir}/#{id.to_s.split(':').last}" end |