module HelperClasses::Platform

Attributes

services[RW]
system[RW]

Public Instance Methods

daemon_reload() click to toggle source
# File lib/helper_classes/platform.rb, line 101
def daemon_reload
  reload
end
disable(service) click to toggle source
# File lib/helper_classes/platform.rb, line 89
def disable(service)
  service_run(service, {ArchLinux: 'systemctl disable ##',
                        Ubuntu: 'systemctl disable ##',
                        MacOSX: nil}
  )
end
enable(service) click to toggle source
# File lib/helper_classes/platform.rb, line 82
def enable(service)
  service_run(service, {ArchLinux: 'systemctl enable ##',
                        Ubuntu: 'systemctl enable ##',
                        MacOSX: nil}
  )
end
enable_start(service) click to toggle source
# File lib/helper_classes/platform.rb, line 105
def enable_start(service)
  enable(service)
  start(service)
end
net_restart(iface) click to toggle source
# File lib/helper_classes/platform.rb, line 133
def net_restart(iface)
  net_stop(iface)
  net_start(iface)
end
net_start(iface) click to toggle source
# File lib/helper_classes/platform.rb, line 115
def net_start(iface)
  c = "#{@services[:net_start][@system]} #{iface}"
  if !System.run_bool(c)
    log_msg :Services, "Command #{c} failed"
    return false
  end
  return true
end
net_status(iface, dev) click to toggle source
# File lib/helper_classes/platform.rb, line 138
def net_status(iface, dev)
  case @system
    when :ArchLinux
      return System.run_str("netctl status #{iface} | grep Active") =~ /: active/
    when :Ubuntu
      return System.run_str("ifconfig | grep #{dev}") != ''
    else
      return false
  end
end
net_stop(iface) click to toggle source
# File lib/helper_classes/platform.rb, line 124
def net_stop(iface)
  c = "#{@services[:net_stop][@system]} #{iface}"
  if !System.run_bool(c)
    log_msg :Services, "Command #{c} failed"
    return false
  end
  return true
end
reload() click to toggle source
# File lib/helper_classes/platform.rb, line 96
def reload
  return unless @system == :ArchLinux
  System.run_bool('/usr/bin/systemctl daemon-reload')
end
restart(service) click to toggle source
# File lib/helper_classes/platform.rb, line 75
def restart(service)
  service_run(service, {ArchLinux: 'systemctl restart ##',
                        Ubuntu: 'systemctl restart ##',
                        MacOSX: nil}
  )
end
service_get(service) click to toggle source
# File lib/helper_classes/platform.rb, line 28
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/helper_classes/platform.rb, line 36
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/helper_classes/platform.rb, line 61
def start(service)
  service_run(service, {ArchLinux: 'systemctl start ##',
                        Ubuntu: 'systemctl start ##',
                        MacOSX: nil}
  )
end
stop(service) click to toggle source
# File lib/helper_classes/platform.rb, line 68
def stop(service)
  service_run(service, {ArchLinux: 'systemctl stop ##',
                        Ubuntu: 'systemctl stop ##',
                        MacOSX: nil}
  )
end
stop_disable(service) click to toggle source
# File lib/helper_classes/platform.rb, line 110
def stop_disable(service)
  disable(service)
  stop(service)
end