#!/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