Sha256: 2139c31c389a04e6b0a9d0ed59a3928cec4a39295e77b4ef27224e051caa5133

Contents?: true

Size: 924 Bytes

Versions: 32

Compression:

Stored size: 924 Bytes

Contents

module Kontena
  module Util
    def self.included(base)
        base.extend(ClassMethods)
    end

    # @param [String] cmd
    def which(cmd)
      exts = ENV['PATHEXT'] ? ENV['PATHEXT'].split(';') : ['']
      ENV['PATH'].split(File::PATH_SEPARATOR).each do |path|
        exts.each { |ext|
          exe = File.join(path, "#{cmd}#{ext}")
          return exe if File.executable?(exe) && !File.directory?(exe)
        }
      end
      return nil
    end

    # Compatibility between ruby_dig and Ruby 2.3. Ruby_dig returns
    # nil when trying to dig into a string, Ruby 2.3 dig raises
    # TypeError.
    #
    # @param [Hash] source_hash
    # @param [*keys] list_of_keys
    def safe_dig(hash, *keys)
      hash.dig(*keys)
    rescue TypeError
      nil
    end

    module_function(:which)

    module ClassMethods
      def experimental?
        ENV.has_key?('KONTENA_EXPERIMENTAL')
      end
    end

  end
end

Version data entries

32 entries across 32 versions & 1 rubygems

Version Path
kontena-cli-0.17.0.pre1 lib/kontena/util.rb
kontena-cli-0.16.3 lib/kontena/util.rb
kontena-cli-0.16.3.rc1 lib/kontena/util.rb
kontena-cli-0.16.2 lib/kontena/util.rb
kontena-cli-0.16.2.rc1 lib/kontena/util.rb
kontena-cli-0.16.1 lib/kontena/util.rb
kontena-cli-0.16.1.rc3 lib/kontena/util.rb
kontena-cli-0.16.1.rc2 lib/kontena/util.rb
kontena-cli-0.16.1.rc1 lib/kontena/util.rb
kontena-cli-0.16.0 lib/kontena/util.rb
kontena-cli-0.16.0.rc3 lib/kontena/util.rb
kontena-cli-0.16.0.rc2 lib/kontena/util.rb
kontena-cli-0.16.0.rc1 lib/kontena/util.rb
kontena-cli-0.16.0.pre9 lib/kontena/util.rb
kontena-cli-0.16.0.pre8 lib/kontena/util.rb
kontena-cli-0.16.0.pre7 lib/kontena/util.rb
kontena-cli-0.16.0.pre6 lib/kontena/util.rb
kontena-cli-0.15.5 lib/kontena/util.rb
kontena-cli-0.15.5.rc2 lib/kontena/util.rb
kontena-cli-0.15.5.rc1 lib/kontena/util.rb