#! /bin/sh


usage () {
            cat << EOF
Usage: $(basename $0) [options] FILE1 FILE2
Options: Same as diff.

EOF
}

file1=""
file2=""

while test $# -ne 0; do
    case "$1" in
        "--help"|"-h")
	    usage
            exit 0
            ;;
        "-"*)
            opts="$opts $1"
            ;;
        *)
            if [ x"$file1" = x"" ]; then
                file1=$1
            elif [ x"$file2" = x"" ]; then
                file2=$1
            else
                usage
                exit 1
            fi
            ;;
    esac
    shift
done

if [ -d "$file1" ]; then
    # Be recursive.
    # echo "entering $file1"
    for file in "$file1"/*; do
        "$0" $opts "$file" $(echo "$file" | sed "s@^$file1/@$file2/@")
    done
else
    ft1=`mktemp /tmp/oodiff.$$.1.XXXXXXXXXX` \
        || ft1="/tmp/oodiff.$$.1"
    ft2=`mktemp /tmp/oodiff.$$.2.XXXXXXXXXX` \
        || ft2="/tmp/oodiff.$$.2"
    if odt2txt  "$file1" > "$ft1" 2>/dev/null && \
        odt2txt "$file2" > "$ft2" 2>/dev/null; then
        if diff -L "$file1" -L "$file2" $opts "$ft1" "$ft2"; then
        # no text change
            if diff -q "$file1" "$file2"; then
                : # no change at all
            else
                echo "OpenDocument files $file1 and $file2 files differ (same text content)"
            fi
        fi
    else
        diff $opts "$file1" "$file2"
    fi
    rm -f "$ft1" "$ft2"
fi
