#!/bin/bash

set -e

START_DIR_DONT_CHANGE=`pwd`

# required config items
XOR=""
DIR=""
IMG=""

printf "\n$0: SCRIPT NOT COMPLETED YET\n"
exit 100


# Thomas:
# xorriso provides built-in means for comparison: 
#  -compare_r disk_path iso_rr_path
# Possibly i will have to enhance it so that it is suitable for automatic
# testing. (I used it mainly for testing -update_r.)

# xorriso could use 
#   -osirrox on -extract iso_rr_path disk_path
# to pull a tree out of the image without mounting it.

# One could mount the image -o loop. (Needs superuser authority.)

# There is a program test/compare_file which acts on a mounted image
# or on extracted trees i.e. completely independent of xorriso code.
# See libisoburn/README paragraph "Testing".
# With extracted trees one will want to use option -no_ctime.

# One may use command diff -r to compare directory trees of a mounted image
# or extracted trees.

# George:
# xorriso -indev my.iso -find /   vs. find input_dir
# bsdtar -xf my.iso               vs. input_dir


Sketched by Thomas:
------------------------------------------------------------------------------

  image_file=/tmp/...
  on_disk=...
  in_iso="$on_disk"
  copy_on_disk=/tmp/...

  if test -e "$image_file"
  then
    echo "TEST ENVIRONMENT ERROR: Existing image_file target:" >&2
    ls -ld "$image_file" >&2
    exit 1
  fi
  if test -e "$copy_on_disk"
  then
    echo "TEST ENVIRONMENT ERROR: Existing copy_on_disk target:" >&2
    ls -ld "$copy_on_disk" >&2
    exit 1
  fi

  # Produce simple image
  xorriso \
    -for_backup \
    -outdev "$image_file" \
    -map "$on_disk" "$in_iso"

  # Copy from image to temporary disk tree
  xorriso \
    -for_backup \
    -indev "$image_file" \
    -osirrox on \
    -extract "$in_iso" "$copy_on_disk"

  # Compare original disk tree and temporary one
  diff -r "$on_disk" "$copy_on_disk"
  if test "$?" -ne 0
  then
    echo 'FAILURE !!!'
  else
    echo "Success."
  fi

  # Clean up
  rm -r "$copy_on_disk" "$image_file"

------------------------------------------------------------------------------

exit 0