Top Level Namespace

Defined Under Namespace

Modules: Tomo Classes: Service, Unit

Constant Summary collapse

COMMANDS =
%w[
  daemon-reload
  enable
  is-active
  restart
  start
  status
  stop
].freeze

Instance Method Summary collapse

Instance Method Details

#daemon_reload(args) ⇒ Object



59
60
61
# File 'lib/tomo/testing/systemctl.rb', line 59

def daemon_reload(args)
  raise "daemon-reload does not accept arguments" unless args.empty?
end

#main(args) ⇒ Object



41
42
43
44
45
46
47
48
49
50
# File 'lib/tomo/testing/systemctl.rb', line 41

def main(args)
  args = args.dup
  raise "First arg must be --user" unless args.shift == "--user"
  raise "Missing command" if args.empty?

  command = args.shift
  raise "Unknown command: #{command}" unless COMMANDS.include?(command)

  run(command, args)
end

#run(command, args) ⇒ Object



52
53
54
55
56
57
# File 'lib/tomo/testing/systemctl.rb', line 52

def run(command, args)
  return daemon_reload(args) if command == "daemon-reload"
  raise "#{command} requires an argument" if args.empty?

  args.each { |name| Unit.find(name).public_send(command.tr("-", "_")) }
end