#!/bin/sh
#
# Create RoadMap map files from the US Census Bureau ZIP files.
#
# The main purpose of this script is to avoid keeping the TIGER
# files in uncompressed form, waisting large amounts of disk space.
#
# USAGE:
# ------
#
# rdmgenmaps <tiger-path> [maps=<map-directory-path>]
#                         [format=2000|2002|2004|2005]
#                         [state=<state-id>]
#                         [verbose|test]
#
#   or
#
# rdmgenmaps <tiger-path> [maps=<map-directory-path>]
#                         [format=2000|2002|2004|2005]
#                         [verbose|test]
#                         county-fips ...
#
#    Example: rdmgenmaps /var/lib/roadmap state=06
#
#
# The buildmap and buildus programs will be found either in the
# current directory, or via $PATH.  Pass in $BUILDMAP and/or
# $BUILDUS to override.
#
#
# Default setup: preferred map path is used, latest format, all states.

FORMAT="--format=2002"
MAPPATH=""
OPTIONS=""
TMPDIR=/var/tmp
state=''


# Analyze the command line arguments.

TIGERDIR=$1
shift

cleanup=Y
gendir=Y
verbose=N

case $1 in
   maps=*) MAPPATH="--maps=`expr $1 : 'maps=\(.*\)'`"
           shift
           ;;
esac

case $1 in
   format=2000) FORMAT="--format=2000"
                shift
                ;;
   format=2002) FORMAT="--format=2002"
                shift
                ;;
   format=2004) FORMAT="--format=2002"
                shift
                ;;
   format=2005) FORMAT="--format=2002"
                shift
                ;;
esac

case $1 in
   state=*) state=`expr $1 : 'state=\(.*\)'`
            shift
            ;;
esac

case $1 in
   verbose) verbose=Y
         OPTIONS="-v $OPTIONS"
         shift
         ;;

   test) cleanup=N
         gendir=N
         verbose=Y
         OPTIONS="-v $OPTIONS"
         shift
         ;;
esac


if [ ! "$BUILDMAP" ]
then
    if [ -e ./buildmap ] ; then
       BUILDMAP=./buildmap
    else
       BUILDMAP=buildmap
    fi
fi

function process_one_county {

   if [ -e $TIGERDIR/TGR$1.ZIP ] ; then
      unzip $TIGERDIR/TGR$1.ZIP -d $TMPDIR/roadmap > /dev/null
   elif [ -e $TIGERDIR/tgr$1.zip ] ; then
      unzip $TIGERDIR/tgr$1.zip -d $TMPDIR/roadmap > /dev/null
   fi
   rt1=$TMPDIR/roadmap/TGR$1.RT1
   if [ -e $rt1 ] ; then
      if [ $verbose = 'Y' ] ; then
         echo "$BUILDMAP $OPTIONS $FORMAT $MAPPATH $1 $rt1"
      fi
      $BUILDMAP $OPTIONS $FORMAT $MAPPATH $1 $rt1 || exit 1
   fi
   if [ $cleanup = 'Y' ] ; then
      rm -f $TMPDIR/roadmap/*
   fi
}


rm -rf $TMPDIR/roadmap
mkdir $TMPDIR/roadmap

if [ $# -gt 0 ] ; then

   for i in $*
   do
      process_one_county $i
   done

else

   for i in $TIGERDIR/[Tt][Gg][Rr]${state}*.[Zz][Ii][Pp]
   do
      if [ -e $i ] ; then

         base=`basename $i`
         county=`expr substr $base 4 5`

         process_one_county $county
      fi
   done
fi

if [ $cleanup = 'Y' ] ; then
   rmdir $TMPDIR/roadmap
fi

if [ $gendir = 'Y' ] ; then

   echo "Generating usdir.rdm, please wait.."

   if [ ! "$BUILDUS" ]
   then
       if [ -e buildus ] ; then
	  BUILDUS=./buildus
       else
	  BUILDUS=buildus
       fi
   fi
   $BUILDUS -s $MAPPATH
fi

