Sha256: 6e265aa37fc6228126630eab407e48d71cefc73d1a6f41399a81191cb8d4d4ba

Contents?: true

Size: 724 Bytes

Versions: 3

Compression:

Stored size: 724 Bytes

Contents

module Cumuli
  class CLI
    def run
      spawn_app
    end

    def args
      @args ||= Args.new(ARGV.dup)
    end

    def spawn_app
      listen_for_signals

      Dir.chdir(args.dir) do
        command = Commander.new(args).build
        puts "starting ... #{command}"
        spawn_terminal(command)
      end
    end

    def signals
      # these are the signals used by Foreman
      ['TERM', 'INT', 'HUP']
    end

    def listen_for_signals
      signals.each do |signal|
        Signal.trap(signal) do
          kill_process
        end
      end
    end

    def kill_process
      Process.kill('INT', Process.pid)
    end

    def spawn_terminal(command)
      Terminal.new(command).spawn
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
cumuli-0.2.1 lib/cumuli/cli/cli.rb
cumuli-0.2.0 lib/cumuli/cli/cli.rb
cumuli-0.1.0 lib/cumuli/cli/cli.rb