Class: PleaseRun::Platform::Systemd

Inherits:
Base
  • Object
show all
Defined in:
lib/pleaserun/platform/systemd.rb

Overview

The platform implementation for systemd.

If you use Fedora 18+ or CentOS/RHEL 7+, this is for you.

Instance Method Summary collapse

Methods inherited from Base

#all_environment_variables, #default_file, #initialize, #log_path, #log_path_stderr, #log_path_stdout, #parsed_environment_variables, #platform, #render, #render_template, #safe_filename, #sysconfig_file, #template_path

Methods included from MustacheMethods

#escaped, #escaped_args, #quoted, #shell_args, #shell_continuation, #shell_quote

Methods included from Configurable

#configurable_setup, included, #validate

Constructor Details

This class inherits a constructor from PleaseRun::Platform::Base

Instance Method Details

#filesObject



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/pleaserun/platform/systemd.rb', line 15

def files
  begin
    # TODO(sissel): Make it easy for subclasses to extend validation on attributes.
    insist { program } =~ /^\//
  rescue Insist::Failure
    raise PleaseRun::Configurable::ValidationError, "In systemd, the program must be a full path. You gave '#{program}'."
  end

  return Enumerator::Generator.new do |enum|
    enum.yield(safe_filename("/etc/default/{{ name }}"), render_template("default"))
    enum.yield(safe_filename("{{{ unit_path }}}/{{{ name }}}.service"), render_template("program.service"))

    # TODO(sissel): This is probably not the best place to put this. Ahh well :)
    enum.yield(safe_filename("{{{ unit_path }}}/{{{ name }}}-prestart.sh"), render_template("prestart.sh"), 0755) if prestart
  end
end

#install_actionsObject

def files



32
33
34
# File 'lib/pleaserun/platform/systemd.rb', line 32

def install_actions
  return ["systemctl --system daemon-reload"]
end