#!/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" left_data_files=$(cd "$left_dir" && find chunks -type f -print) right_data_files=$(cd "$right_dir" && find chunks -type f -print) 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) 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