Sha256: 93c04cd1f8bb02d4fad83bb2a2c98d19208b2810aa60d344651597c2cb965248

Contents?: true

Size: 537 Bytes

Versions: 4

Compression:

Stored size: 537 Bytes

Contents

class Pups::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
    if @env
      @env.map do |k,v|
        "export #{k}=#{v}"
      end.join("\n")
    end
  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
pups-1.0.3 lib/pups/runit.rb
pups-1.0.2 lib/pups/runit.rb
pups-1.0.1 lib/pups/runit.rb
pups-1.0.0 lib/pups/runit.rb