#!/bin/sh
#
# This tool unpacks a full update package generated by make_full_update.sh
# Author: Darin Fisher
#

# -----------------------------------------------------------------------------
# By default just assume that these tools exist on our path
MAR=${MAR:-mar}
BZIP2=${BZIP2:-bzip2}

# -----------------------------------------------------------------------------
#
print_usage() {
  echo "Usage: $(basename $0) [OPTIONS] ARCHIVE"
}

if [ $# = 0 ]; then
  print_usage
  exit 1
fi

if [ $1 = -h ]; then
  print_usage
  echo ""
  echo "The contents of ARCHIVE will be unpacked into the current directory."
  echo ""
  echo "Options:"
  echo "  -h  show this help text"
  echo ""
  exit 1
fi

# -----------------------------------------------------------------------------

archive="$1"

# Generate a list of all files in the archive.
files=($($MAR -t "$archive" | cut -d'	' -f3))

# Extract the files, creating subdirectories.  The resulting files are bzip2
# compressed, so we need to walk the list of files, and decompress them.
$MAR -x "$archive"

num_files=${#files[*]}

# Skip first "file" since it is actually the column header string "NAME" that
# does not correspond to an actual file in the archive.
for ((i=1; $i<$num_files; i=$i+1)); do
  eval "f=${files[$i]}"

  echo "  decompressing $f"

  mv -f "$f" "$f.bz2"
  $BZIP2 -d "$f.bz2"
done
