Sha256: 5f61a30a48b7dea31ea9a5382fb7c5466abe569a781d0c83ef5464ab885e1ede

Contents?: true

Size: 760 Bytes

Versions: 1

Compression:

Stored size: 760 Bytes

Contents

# encoding: utf-8
require 'shellwords'

module Cliver
  module Which
    # Windows-specific implementation of Which
    # Required and mixed into Cliver::Which in windows environments
    module Windows
      # @param executable [String]
      # @return [nil,String] - path to found executable
      def which(executable)
        # `where` returns newline-separated files found on path, but doesn't
        # ensure that they are executable as commands.
        where = `where #{Shellwords.escape executable} 2>&1`
        where.split("\n").find do |found|
          next if found.empty?
          File.executable?(found)
        end
      rescue Errno::ENOENT
        raise '"where" must be on your path to use Cliver on Windows.'
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
cliver-0.1.2 lib/cliver/which/windows.rb