Sha256: 84092c9f544053183141156cfb052463831cc2ce33e2b26fb0176e3b4f4b934e

Contents?: true

Size: 1.47 KB

Versions: 7

Compression:

Stored size: 1.47 KB

Contents

require 'certflare'
require 'certflare/logger'
module Certflare
  module Runner
    def initialize(argv = ARGV, stdin = STDIN, stdout = STDOUT, stderr = STDERR, kernel = Kernel)
      @argv, @stdin, @stdout, @stderr, @kernel = argv, stdin, stdout, stderr, kernel
    end

  end
  class CertflareRunner
    include Certflare::Runner

    def execute!
      exit_code = begin
        $stderr = @stderr
        $stdin  = @stdin
        $stdout = @stdout
        Certflare::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
  class CertflareHookRunner
    include Runner
    def execute!
      exit_code = begin
        $stderr = @stderr
        $stdin  = @stdin
        $stdout = @stdout
        Certflare::HookCLI.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

7 entries across 7 versions & 1 rubygems

Version Path
certflare-0.1.9 lib/certflare/runner.rb
certflare-0.1.8 lib/certflare/runner.rb
certflare-0.1.7 lib/certflare/runner.rb
certflare-0.1.6 lib/certflare/runner.rb
certflare-0.1.5 lib/certflare/runner.rb
certflare-0.1.4 lib/certflare/runner.rb
certflare-0.1.2 lib/certflare/runner.rb