class Adminix::Helpers::Systemctl

Constants

TMP_SCRIPT_PATH

Public Class Methods

new(opts = {}) click to toggle source
# File lib/adminix/helpers/systemctl.rb, line 6
def initialize(opts = {})
  @adminix_bin = opts[:adminix_bin] || Helpers::Command.which('adminix')
  @user = opts[:user] || Helpers::Command.whoami
  @group = opts[:group] || Helpers::Command.whoami
  @working_dir = opts[:working_dir] || Helpers::Command.home
  @systemctl_path = Adminix.config.systemctl[:watcher_service_path]
end

Public Instance Methods

to_s() click to toggle source
# File lib/adminix/helpers/systemctl.rb, line 24
def to_s
  "#!/bin/bash\n" \
  "touch #{@systemctl_path}\n" \
  "cat << EOT > #{@systemctl_path}\n" \
  "[Unit]\n" \
  "Description=Adminix\n" \
  "Requires=network.target\n\n" \
  "[Service]\n" \
  "Type=simple\n" \
  "User=#{@user}\n" \
  "Group=#{@group}\n" \
  "WorkingDirectory=#{@working_dir}\n" \
  "ExecStart=#{@adminix_bin} watch\n" \
  "Restart=always\n" \
  "RestartSec=5\n" \
  "StandardInput=null\n" \
  "StandardOutput=syslog\n" \
  "StandardError=syslog\n" \
  "SyslogIdentifier=%n\n" \
  "KillMode=mixed\n" \
  "TimeoutStopSec=5\n" \
  "TimeoutSec=300\n\n" \
  "[Install]\n" \
  "WantedBy=multi-user.target\n" \
  "EOT\n" \
  "# Run this command to configure your shell:\n" \
  '# eval $(adminix write_systemctl)'
end
write() click to toggle source
# File lib/adminix/helpers/systemctl.rb, line 14
def write
  Helpers::Files.rm(TMP_SCRIPT_PATH)
  Helpers::Files.write_plain_file(TMP_SCRIPT_PATH, to_s)
  Helpers::Output.display_multiline_message([
    "sudo sh #{TMP_SCRIPT_PATH}",
    '# Run this command to configure your shell:',
    '# eval $(adminix write_systemctl)'
  ])
end