Class: PleaseRun::Platform::SystemdUser
- Defined in:
- lib/pleaserun/platform/systemd-user.rb
Overview
The platform implementation for systemd user services.
Instance Method Summary collapse
- #files ⇒ Object
-
#install_actions ⇒ Object
def files.
Methods inherited from Base
#initialize, #platform, #render, #render_template, #safe_filename, #sysv_log, #sysv_log_directory?, #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
#files ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/pleaserun/platform/systemd-user.rb', line 6 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 home = ENV["HOME"] if home.nil? || home.empty? raise PleaseRun::Configurable::ValidationError, "As a normal user (not root), I need to know where your home directory is, but the HOME environment variable seems to be not set." end if !File.directory?(home) raise PleaseRun::Configurable::ValidationError, "HOME (#{home}) is not a directory. Cannot continue." end return Enumerator::Generator.new do |enum| enum.yield(safe_filename("#{home}/.config/systemd/user/{{{ name }}}.service"), render_template("program.service")) enum.yield(safe_filename("#{home}/.config/systemd/user/{{{ name }}}-prestart.sh"), render_template("prestart.sh"), 0755) if prestart end end |
#install_actions ⇒ Object
def files
29 30 31 |
# File 'lib/pleaserun/platform/systemd-user.rb', line 29 def install_actions return ["systemctl --user daemon-reload"] end |