#!/usr/bin/env bash set -eu case "$#" in 1) echo "$0: Warning: Only one directory to compare" 1>&2 ;; 2) export left_dir="$1" export right_dir="$2" if [ -f "$left_dir"/chunks/data ] && [ -f "$right_dir"/chunks/data ] then echo "$0: Not trie's: $left_dir, $right_dir" 1>&2 exit 0 fi left_data_files=$(cd "$left_dir" && find chunks -type f -print | sort) right_data_files=$(cd "$right_dir" && find chunks -type f -print | sort) error=False if [ "$left_data_files" = "" ] then echo "$0: \$left_data_files is empty" 1>&2 error=True fi if [ "$right_data_files" = "" ] then echo "$0: \$right_data_files is empty" 1>&2 error=True fi if [ "$error" = True ] then exit 1 fi union_data_files=$(echo $left_data_files $right_data_files | tr ' ' '\012' | sort | uniq) # We used to do byte for byte comparisons of the chunks, but the new CPython 3.3 compresses subtly differently, so now we just # test for the presence of the correct filenames if [ "$left_data_files" = "$right_data_files" ] then : else echo "$0: \$left_data_files != \$right_data_files" 1>&2 exit 1 fi # cd "$left_dir" # for file in $union_data_files # do # diff -u "$file" ../$right_dir/$file # done ;; *) echo "$0: Warning: Too many directories to compare: $#" 1>&2 ;; esac