class Pups::Runit

Attributes

cd[RW]
env[RW]
exec[RW]
name[RW]

Public Class Methods

new(name) click to toggle source
# File lib/pups/runit.rb, line 7
def initialize(name)
  @name = name
end

Public Instance Methods

cd_script() click to toggle source
# File lib/pups/runit.rb, line 29
def cd_script
  "cd #{@cd}" if @cd
end
env_script() click to toggle source
# File lib/pups/runit.rb, line 33
def env_script
  @env&.map do |k, v|
    "export #{k}=#{v}"
  end&.join("\n")
end
run_script() click to toggle source
# File lib/pups/runit.rb, line 20
    def run_script
      "#!/bin/bash
exec 2>&1
#{env_script}
#{cd_script}
#{exec}
"
    end
setup() click to toggle source
# File lib/pups/runit.rb, line 11
def setup
  `mkdir -p /etc/service/#{name}`
  run = "/etc/service/#{name}/run"
  File.open(run, 'w') do |f|
    f.write(run_script)
  end
  `chmod +x #{run}`
end