Module: HelperClasses::Service

Extended by:
DPuts, Service
Included in:
Service
Defined in:
lib/helper_classes/service.rb

Instance Attribute Summary collapse

Attributes included from DPuts

#log_file, #logall_file, #max_msg_len, #mutex, #show_time, #silent, #terminal_width

Instance Method Summary collapse

Methods included from DPuts

ddputs, dlog_msg, dp, dputs, dputs_func, dputs_getcaller, dputs_out, dputs_unfunc, dputs_write, log_msg, logfile_valid

Instance Attribute Details

#servicesObject

Returns the value of attribute services.



6
7
8
# File 'lib/helper_classes/service.rb', line 6

def services
  @services
end

#systemObject

Returns the value of attribute system.



6
7
8
# File 'lib/helper_classes/service.rb', line 6

def system
  @system
end

Instance Method Details

#daemon_reloadObject



99
100
101
# File 'lib/helper_classes/service.rb', line 99

def daemon_reload
  reload
end

#disable(service) ⇒ Object



87
88
89
90
91
92
# File 'lib/helper_classes/service.rb', line 87

def disable(service)
  service_run(service, {ArchLinux: 'systemctl disable ##',
                        Ubuntu: nil,
                        MacOSX: nil}
  )
end

#enable(service) ⇒ Object



80
81
82
83
84
85
# File 'lib/helper_classes/service.rb', line 80

def enable(service)
  service_run(service, {ArchLinux: 'systemctl enable ##',
                        Ubuntu: nil,
                        MacOSX: nil}
  )
end

#enable_start(service) ⇒ Object



103
104
105
106
# File 'lib/helper_classes/service.rb', line 103

def enable_start(service)
  enable(service)
  start(service)
end

#reloadObject



94
95
96
97
# File 'lib/helper_classes/service.rb', line 94

def reload
  return unless @system == :ArchLinux
  System.run_bool('/usr/bin/systemctl daemon-reload')
end

#restart(service) ⇒ Object



73
74
75
76
77
78
# File 'lib/helper_classes/service.rb', line 73

def restart(service)
  service_run(service, {ArchLinux: 'systemctl restart ##',
                        Ubuntu: '/etc/init.d/## restart',
                        MacOSX: nil}
  )
end

#service_get(service) ⇒ Object



26
27
28
29
30
31
32
# File 'lib/helper_classes/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) ⇒ Object



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/helper_classes/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) ⇒ Object



59
60
61
62
63
64
# File 'lib/helper_classes/service.rb', line 59

def start(service)
  service_run(service, {ArchLinux: 'systemctl start ##',
                        Ubuntu: '/etc/init.d/## start',
                        MacOSX: nil}
  )
end

#stop(service) ⇒ Object



66
67
68
69
70
71
# File 'lib/helper_classes/service.rb', line 66

def stop(service)
  service_run(service, {ArchLinux: 'systemctl stop ##',
                        Ubuntu: '/etc/init.d/## stop',
                        MacOSX: nil}
  )
end

#stop_disable(service) ⇒ Object



108
109
110
111
# File 'lib/helper_classes/service.rb', line 108

def stop_disable(service)
  disable(service)
  stop(service)
end