class PleaseRun::Platform::Systemd

The platform implementation for systemd.

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

Public Instance Methods

files() click to toggle source
# 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_actions() click to toggle source
# File lib/pleaserun/platform/systemd.rb, line 32
def install_actions
  return ["systemctl --system daemon-reload"]
end