Sha256: 3b8e2b4e5b94dae2c6212e19cd8f1a884d39f578b45a5dc2bc1d29f0ea293a6b

Contents?: true

Size: 967 Bytes

Versions: 13

Compression:

Stored size: 967 Bytes

Contents

require 'site_hook'
require 'site_hook/logger'
module SiteHook
  class Runner
    def initialize(argv = ARGV, stdin = STDIN, stdout = STDOUT, stderr = STDERR, kernel = Kernel)
      @argv, @stdin, @stdout, @stderr, @kernel = argv, stdin, stdout, stderr, kernel
    end
    def execute!
      exit_code = begin
        $stderr = @stderr
        $stdin = @stdin
        $stdout = @stdout
        SiteHook::PreLogger.new($stdin, $stdout, $stderr)
        SiteHook::Config.new
        SiteHook::Log.new($stdin, $stdout, $stderr)
        SiteHook::CLI.start(@argv)
        0

      rescue StandardError => e
        b = e.backtrace
        STDERR.puts("#{b.shift}: #{e.message} (#{e.class})")
        STDERR.puts(b.map{|s| "\tfrom #{s}"}.join("\n"))
        1
      rescue SystemExit => e
        STDERR.puts e.status
        1
      ensure

        $stderr = STDERR
        $stdin = STDIN
        $stdout = STDOUT
      end
      @kernel.exit(exit_code)
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
site_hook-0.9.16 lib/site_hook/runner.rb
site_hook-0.9.15 lib/site_hook/runner.rb
site_hook-0.9.14 lib/site_hook/runner.rb
site_hook-0.9.12 lib/site_hook/runner.rb
site_hook-0.9.11 lib/site_hook/runner.rb
site_hook-0.9.10 lib/site_hook/runner.rb
site_hook-0.9.9 lib/site_hook/runner.rb
site_hook-0.9.8 lib/site_hook/runner.rb
site_hook-0.9.7 lib/site_hook/runner.rb
site_hook-0.9.6 lib/site_hook/runner.rb
site_hook-0.9.5 lib/site_hook/runner.rb
site_hook-0.9.4 lib/site_hook/runner.rb
site_hook-0.9.3 lib/site_hook/runner.rb