Sha256: effbfd1048839ab804a7b4269e6ab23f9604d9dd9fa87c7b83c9236a3e805356

Contents?: true

Size: 772 Bytes

Versions: 1

Compression:

Stored size: 772 Bytes

Contents

class CliDocs::CLI
  module Util
    def sh(command, options = {})
      quiet = options[:quiet]
      on_fail = options[:on_fail] || :raise

      puts "=> #{command}" unless quiet
      system(command)
      success = $?.success?

      case on_fail
      when :raise
        raise "Command failed: #{command}\n#{caller(1..1).first}" unless success
      when :exit
        unless success
          if quiet
            abort("Command failed: #{command}\n")
          else
            abort("Command failed: #{command}\n#{caller.join("\n")}")
          end
        end
      end

      success
    end

    def capture(command)
      out = `#{command}`.strip
      raise "Command failed: #{command}\n#{caller(1..1).first}" unless $?.success?
      out
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
cli-docs-0.1.0 lib/cli_docs/cli/util.rb