DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Untracked file

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
#!/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.
list=$($MAR -t "$archive" | cut -d'	' -f3)
eval "files=($list)"

# 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
  f=${files[$i]}

  echo "  decompressing $f"

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