module FPM::Fry::Plugin::Init
A plugin that detects the init system of a docker image.
This plugin is a low-level plugin and is used by other plugins such as “service”.
@example in a recipe when using the image “ubuntu:16.04”
plugin 'init' init.systemd? #=> true init.sysv? #=> false
Private Class Methods
apply(builder)
click to toggle source
# File lib/fpm/fry/plugin/init.rb, line 77 def self.apply(builder) builder.extend(self) return builder.init end
detect(inspector)
click to toggle source
# File lib/fpm/fry/plugin/init.rb, line 42 def self.detect(inspector) if inspector.exists?('/lib/systemd/systemd') return System.new(:systemd, {}) end if inspector.exists?('/etc/init') return detect_upstart(inspector) end if inspector.exists?('/etc/init.d') return detect_sysv(inspector) end return nil end
detect_sysv(inspector)
click to toggle source
# File lib/fpm/fry/plugin/init.rb, line 62 def self.detect_sysv(inspector) features = { :chkconfig => inspector.exists?('/sbin/chkconfig'), :'update-rc.d' => inspector.exists?('/usr/sbin/update-rc.d'), :'invoke-rc.d' => inspector.exists?('/usr/sbin/invoke-rc.d') } return System.new(:sysv,features) end
detect_upstart(inspector)
click to toggle source
# File lib/fpm/fry/plugin/init.rb, line 55 def self.detect_upstart(inspector) features = { sysvcompat: inspector.exists?('/lib/init/upstart-job') ? '/lib/init/upstart-job' : false } return System.new(:upstart,features) end
extended(base)
click to toggle source
# File lib/fpm/fry/plugin/init.rb, line 71 def self.extended(base) base.instance_eval do @init ||= FPM::Fry::Plugin::Init.detect(inspector) end end
Public Instance Methods
init()
click to toggle source
@return [System] initsystem in use
# File lib/fpm/fry/plugin/init.rb, line 37 def init return @init end