diff --git a/scripts/resolve_dropbox_conflicts.rb b/scripts/resolve_dropbox_conflicts.rb index 466571e..2dca362 100644 --- a/scripts/resolve_dropbox_conflicts.rb +++ b/scripts/resolve_dropbox_conflicts.rb @@ -2,16 +2,20 @@ require 'fileutils' include FileUtils conflicts = `find ~/Dropbox -name "*conflicted*"`.split("\n") -same, diff = conflicts.select { |conflict| +diffs = conflicts.each.with_object({}) { |conflict, diffs| actual = conflict.sub(/ \(.*'s conflicted copy \d{4}-\d{2}-\d{2}\)/, '') - diff = `diff "#{actual}" "#{conflict}"` - diff.empty? + diffs[conflict] = `diff "#{actual}" "#{conflict}"` } -same.each do |conflict| +same, diff = diffs.partition {|_,diff| diff.empty? } + +same.each do |conflict, _| rm conflict end -puts diff.map { |conflict| +puts diff.map { |conflict, diff| [conflict, diff].join("\n") }.join("\n") + +# require 'pry' +# binding.pry