Sha256: 9cc6b90a286b1c44de44fed400f283eb376b7b0cb7baf04c5bbba727e104f4dc

Contents?: true

Size: 606 Bytes

Versions: 2

Compression:

Stored size: 606 Bytes

Contents

# frozen_string_literal: true

module Pups
  class Runit
    attr_accessor :env, :exec, :cd, :name

    def initialize(name)
      @name = name
    end

    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

    def run_script
      "#!/bin/bash
exec 2>&1
#{env_script}
#{cd_script}
#{exec}
"
    end

    def cd_script
      "cd #{@cd}" if @cd
    end

    def env_script
      @env&.map do |k, v|
        "export #{k}=#{v}"
      end&.join("\n")
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
pups-1.1.1 lib/pups/runit.rb
pups-1.1.0 lib/pups/runit.rb