#!/usr/bin/env ruby

dir = ARGV[0]
a = `find #{dir} -type f`.split "\n"

md5cmd = "md5sum"
os = `uname`.strip
if os == "Darwin"
  md5cmd = "md5"
end

h = {}
a.each { |fn|
  if os == "Darwin"
    md5 = `#{md5cmd} "#{fn}" | cut -d "=" -f2`.lstrip.strip
  else
    md5 = `#{md5cmd} "#{fn}" | cut -d " " -f1`.strip
  end
  if h.has_key? md5
    h[md5] << fn
  else
    h[md5] = [fn]
  end
}

h.each { |k,v|
  if v.size > 1
    puts k
    v.each { |i| puts "\t#{i}" }
    puts
  end
}