#Cross-platform way of finding an executable in the $PATH
#which('ruby') #=> /usr/bin/ruby
#Courtesy of Mislav Marohnic (via Stackoverflow)
def which(cmd)
  exts = ENV['PATHEXT'] ? ENV['PATHEXT'].split(';') : ['']
  ENV['PATH'].split(File::PATH_SEPARATOR).each do |path|
    exts.each { |ext|
      exe = "#{path}/#{cmd}#{ext}"
      return exe if File.executable? exe
    }
  end
  return nil
end


#Check for existence of a command for use
def command?(command)
  if which(command) != nil
    return true
  else
    return false
  end
end

def system_has_mysql?
  Gem::Specification::find_all_by_name('mysql2').any? || command?('mysql_config')
end

def system_has_postgres?
  Gem::Specification::find_all_by_name('pg').any? || command?('pg_config')
end

def mysql_location
  which('mysql_config').split('/bin').first
end

def postgres_location
  which('pg_config').split('/bin').first
end