module HelperClasses::Service

Attributes

services[RW]
system[RW]

Public Instance Methods

disable(service) click to toggle source
# File lib/helperclasses/service.rb, line 87
def disable(service)
  service_run(service, {ArchLinux: 'systemctl disable ##',
                        Ubuntu: nil,
                        MacOSX: nil}
  )
end
enable(service) click to toggle source
# File lib/helperclasses/service.rb, line 80
def enable(service)
  service_run(service, {ArchLinux: 'systemctl enable ##',
                        Ubuntu: nil,
                        MacOSX: nil}
  )
end
enable_start(service) click to toggle source
# File lib/helperclasses/service.rb, line 94
def enable_start(service)
  enable(service)
  start(service)
end
restart(service) click to toggle source
# File lib/helperclasses/service.rb, line 73
def restart(service)
  service_run(service, {ArchLinux: 'systemctl restart ##',
                        Ubuntu: '/etc/init.d/## restart',
                        MacOSX: nil}
  )
end
service_get(service) click to toggle source
# File lib/helperclasses/service.rb, line 26
def service_get(service)
  begin
    @services[service.to_sym][@system]
  rescue NoMethodError => _e
    service.to_s
  end
end
service_run(service, cmd) click to toggle source
# File lib/helperclasses/service.rb, line 34
def service_run(service, cmd)
  return unless @system
  if !cmd
    log_msg :Services, "System #{@system} can't start services"
    return false
  end
  service_name = service_get(service)
  if !service_name
    log_msg :Services, "System #{@system} doesn't have service #{service}"
    return false
  end
  cmd_system = cmd[@system]
  if !cmd_system
    log_msg :Services, "System #{@system} doesn't know how to do #{cmd}"
    return false
  end
  [service_name].flatten.each { |s|
    c = cmd_system.sub(/##/, s)
    if !System.run_bool(c)
      log_msg :Services, "Command #{c} failed"
      return false
    end
  }
end
start(service) click to toggle source
# File lib/helperclasses/service.rb, line 59
def start(service)
  service_run(service, {ArchLinux: 'systemctl start ##',
                        Ubuntu: '/etc/init.d/## start',
                        MacOSX: nil}
  )
end
stop(service) click to toggle source
# File lib/helperclasses/service.rb, line 66
def stop(service)
  service_run(service, {ArchLinux: 'systemctl stop ##',
                        Ubuntu: '/etc/init.d/## stop',
                        MacOSX: nil}
  )
end
stop_disable(service) click to toggle source
# File lib/helperclasses/service.rb, line 99
def stop_disable(service)
  disable(service)
  stop(service)
end