#!/usr/bin/env ruby require 'pathname' def convert_path_to_dos(path) return nil unless path path.gsub(/\/cygdrive\/(.)\//, '\1:\\').gsub("/", "\x5C") end def convert_path_to_cygwin(path) return nil unless path ret = path.gsub("\\", "/") m = /([A-Za-z])\:/.match(ret) return ret unless m drive = m[1].downcase.gsub(':', '') ret.gsub!(/[A-Za-z]\:/, "/cygdrive/#{drive}") return ret end flags = [] s = ENV['SDXROOT'] ? ENV['SDXROOT'].clone : '_NOTHERE' s = s.gsub(/[\/\\]nt$/, '') db = Pathname.new(s).join('locatedb') flags << "--database=#{convert_path_to_cygwin(db.to_s)}" if db.exist? ret = `locate "#{flags.join ' '}" #{ARGV.join ' '}` unless ENV['FF_USE_DOS_PATH'] puts ret exit $? end ret.split("\n").each { |x| puts convert_path_to_dos(x) } puts convert_path_to_dos(ret) exit $?