#!/bin/ksh
# ***************************************************************
# *                                                             *
# *     Script to Create or Augment an IRIS Directory Tree      *
# *                                                             *
# ***************************************************************
#
#         COPYRIGHT (c) 1994, 1997, 2000, 2002, 2003, 2004 BY
#         SIGMET INCORPORATED, WESTFORD MASSACHUSETTS, U.S.A.
# 
# THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND  COPIED
# ONLY  IN  ACCORDANCE WITH  THE  TERMS  OF  SUCH  LICENSE  AND WITH THE
# INCLUSION OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE  OR  ANY OTHER
# COPIES  THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
# OTHER PERSON.  NO TITLE TO AND OWNERSHIP OF  THE  SOFTWARE  IS  HEREBY
# TRANSFERED.
#
MACHINE="`uname -s`"
HELP="false"    ; DEVONLY="false" ; IRISTREE="false" ;
RDATREE="false" ; CREATE="false"  ; ALL="false"      ;

while [ ! "$1" = "" ] ; do
  ARG="$1" ; shift
  if [ "${ARG}" = "-rcs" -o "${ARG}" = "-dev" ] ; then
    # If the 'dev' or 'rcs' options are passed then only make the
    # development directories.  The non development directories are
    # not in RCS, so we don't need to create them.
    #
    DEVONLY="true"

  elif [ "${ARG}" = "-iris" ] ; then
    # Optionally make the IRIS tree
    #
    IRISTREE="true"

  elif [ "${ARG}" = "-rda" ] ; then
    # Optionally make the RDA tree on Linux platforms only
    #
    if [ "${MACHINE}" = "Linux" ] ; then
      RDATREE="true"
    else
      echo "Can not build RDA tree on ${MACHINE} platform" ; exit 1
    fi

  elif [ "${ARG}" = "-create" ] ; then
    CREATE="true"

  elif [ "${ARG}" = "-all" ] ; then
    ALL="true"

  elif [ "${ARG}" = "-help" -o "${ARG}" = "-?" ] ; then
    HELP="true"

  else
    echo "Unknown option: '${ARG}'" ; HELP="true"
  fi
done

if [ "${HELP}" = "true" ] ; then
  echo "Command Line Options:"
  echo "     -rcs : Only make directories needed for a development tree"
  echo "    -iris : Make the IRIS portions of the tree"
  echo "     -rda : Make the RDA portions of the tree"
  echo "  -create : Really execute, else just show what would be done"
  echo "     -all : Include problematical directories as well"
  exit
fi

# Function to optionally make a directory
#
function MKDIR
{
  if [ "${DEVONLY}" = "false" -o "$2" = "rcs" ] ; then
    if [ "${IRISTREE}" = "true" ] ; then
      if   [ "$3" =    "iris" ]                    ; then IRIS="true"
      elif [ "$3" = "alliris" -a ${ALL} = "true" ] ; then IRIS="true"
      else                                                IRIS="false"
      fi
    fi
    if [ "${RDATREE}" = "true" ] ; then
      if   [ "$4" =    "rda"  ]                    ; then RDA="true"
      elif [ "$4" = "allrda"  -a ${ALL} = "true" ] ; then RDA="true"
      else                                                RDA="false"
      fi
    fi
    if [ "${IRIS}" = "true" -o "${RDA}" = "true" ] ; then
      if [ "${CREATE}" = "true" ] ; then
	if [ ! -d "$1" ] ; then
	  echo "Creating: $1"
	  mkdir -p "$1"
	  let CREATECOUNT=CREATECOUNT+1
	fi
      else
	if [ ! -d "$1" ] ; then
	  echo "Would create: $1"
	  let CREATECOUNT=CREATECOUNT+1
	fi
      fi
    fi
  fi
}
CREATECOUNT=0

# ---- BIN ----
#
MKDIR ${PWD}/bin                     norcs    iris    rda 
MKDIR ${PWD}/bin/app-defaults        norcs    iris    rda
MKDIR ${PWD}/bin/dynamic             norcs    iris    rda
MKDIR ${PWD}/bin/keys                norcs    iris    rda
MKDIR ${PWD}/bin/nls                 norcs    iris    rda
MKDIR ${PWD}/bin/rda                 norcs    iris    rda

# ---- CONFIG ----
#
MKDIR ${PWD}/config                  norcs    iris    rda
MKDIR ${PWD}/config/extraspdf        norcs    iris    rda
MKDIR ${PWD}/config/images           norcs    iris    rda
MKDIR ${PWD}/config/init             norcs    iris    rda
MKDIR ${PWD}/config/listings         norcs    iris    rda
MKDIR ${PWD}/config/menu             norcs    iris  norda
MKDIR ${PWD}/config/overlay          norcs    iris    rda
MKDIR ${PWD}/config/pipes            norcs    iris  norda

# ---- CONFIG_TEMPLATE ----
#
CFGTPLT="${PWD}/config_template"
MKDIR ${CFGTPLT}                       rcs    iris    rda
MKDIR ${CFGTPLT}/emacs                 rcs    iris    rda
MKDIR ${CFGTPLT}/extras              norcs    iris    rda
MKDIR ${CFGTPLT}/extraspdf             rcs    iris    rda
MKDIR ${CFGTPLT}/images                rcs    iris    rda
MKDIR ${CFGTPLT}/init                  rcs    iris    rda
MKDIR ${CFGTPLT}/menu                norcs    iris  norda
MKDIR ${CFGTPLT}/overlay               rcs    iris    rda
MKDIR ${CFGTPLT}/pipes               norcs    iris  norda
MKDIR ${CFGTPLT}/LINUX                 rcs    iris    rda
MKDIR ${CFGTPLT}/LINUX/desktop         rcs    iris    rda
MKDIR ${CFGTPLT}/HPUX                norcs    iris  norda

# ----- DeskTop -----------
#
MKDIR ${PWD}/dt                        rcs    iris    rda
MKDIR ${PWD}/dt/appmanager             rcs    iris    rda
MKDIR ${PWD}/dt/icons                  rcs    iris    rda
MKDIR ${PWD}/dt/sounds                 rcs    iris    rda
MKDIR ${PWD}/dt/types                  rcs    iris    rda

# ---- INCLUDE ----
#
MKDIR ${PWD}/include                   rcs    iris    rda

# ---- INSTALL ----
#
MKDIR ${PWD}/install                 norcs    iris    rda

# ---- IRIS ----
#
MKDIR ${PWD}/iris                      rcs    iris    rda
MKDIR ${PWD}/iris/archive              rcs    iris  norda
MKDIR ${PWD}/iris/examiners            rcs    iris  norda
MKDIR ${PWD}/iris/ingest               rcs    iris  norda
MKDIR ${PWD}/iris/ingfio               rcs    iris  norda
MKDIR ${PWD}/iris/input                rcs    iris  norda
MKDIR ${PWD}/iris/network              rcs    iris  norda
MKDIR ${PWD}/iris/nordrad              rcs    iris  norda
MKDIR ${PWD}/iris/output               rcs    iris  norda
MKDIR ${PWD}/iris/product              rcs    iris  norda
MKDIR ${PWD}/iris/reingest             rcs    iris  norda
MKDIR ${PWD}/iris/ribbuild             rcs    iris  norda
MKDIR ${PWD}/iris/server               rcs    iris  norda
MKDIR ${PWD}/iris/siris                rcs    iris  norda
MKDIR ${PWD}/iris/sserver              rcs    iris  norda
MKDIR ${PWD}/iris/watchdog             rcs    iris  norda
MKDIR ${PWD}/iris/window               rcs    iris  norda
MKDIR ${PWD}/iris/xuif                 rcs    iris  norda

# ---- LIBS ----
#
MKDIR ${PWD}/libs                      rcs    iris    rda
MKDIR ${PWD}/libs/antenna              rcs    iris    rda
MKDIR ${PWD}/libs/audio                rcs    iris    rda
MKDIR ${PWD}/libs/bxutils              rcs    iris    rda
MKDIR ${PWD}/libs/config               rcs    iris    rda
MKDIR ${PWD}/libs/dsp                  rcs    iris    rda
MKDIR ${PWD}/libs/fileformats          rcs    iris    rda
MKDIR ${PWD}/libs/gdbm                 rcs    iris    rda
MKDIR ${PWD}/libs/himath               rcs    iris    rda
MKDIR ${PWD}/libs/lib                  rcs    iris    rda
MKDIR ${PWD}/libs/link                 rcs    iris  norda
MKDIR ${PWD}/libs/maps                 rcs    iris    rda
MKDIR ${PWD}/libs/misc                 rcs    iris    rda
MKDIR ${PWD}/libs/nordrad              rcs    iris  norda
if [ "${MACHINE}" = "Linux" ] ; then
  MKDIR ${PWD}/libs/nordrad2           rcs alliris  norda
fi
MKDIR ${PWD}/libs/outlib               rcs    iris  norda
MKDIR ${PWD}/libs/private              rcs    iris    rda
MKDIR ${PWD}/libs/ribbon               rcs    iris  norda
MKDIR ${PWD}/libs/rtq                  rcs    iris    rda
MKDIR ${PWD}/libs/share                rcs    iris  norda
MKDIR ${PWD}/libs/tvsubs               rcs    iris    rda
MKDIR ${PWD}/libs/user                 rcs    iris    rda
MKDIR ${PWD}/libs/uxsig                rcs    iris    rda
MKDIR ${PWD}/libs/vtv                  rcs    iris    rda
MKDIR ${PWD}/libs/xpm                  rcs    iris    rda
MKDIR ${PWD}/libs/xsig                 rcs    iris    rda

# ---- LOCAL ----
#
MKDIR ${PWD}/local                     rcs    iris    rda
MKDIR ${PWD}/local/manlock             rcs alliris  norda
MKDIR ${PWD}/local/misc                rcs alliris allrda
MKDIR ${PWD}/local/sigrcs              rcs alliris allrda

# ---- SCRIPT ----
#
MKDIR ${PWD}/script                    rcs    iris    rda

# ---- RDA ----
#
MKDIR ${PWD}/rda                       rcs    iris    rda
MKDIR ${PWD}/rda/lib                   rcs    iris    rda
MKDIR ${PWD}/rda/intelipp              rcs  noiris    rda
MKDIR ${PWD}/rda/jamplayer             rcs  noiris    rda
MKDIR ${PWD}/rda/kernelmod             rcs  noiris    rda
MKDIR ${PWD}/rda/pcicards              rcs  noiris    rda
MKDIR ${PWD}/rda/rcp8/core             rcs  noiris    rda
MKDIR ${PWD}/rda/rcp8/open             rcs  noiris    rda
MKDIR ${PWD}/rda/rcp8/site             rcs  noiris    rda
MKDIR ${PWD}/rda/rdasubs               rcs  noiris    rda
MKDIR ${PWD}/rda/rvp8main/core         rcs  noiris    rda
MKDIR ${PWD}/rda/rvp8main/open         rcs  noiris    rda
MKDIR ${PWD}/rda/rvp8main/site         rcs  noiris    rda
MKDIR ${PWD}/rda/rvp8proc/core         rcs  noiris    rda
MKDIR ${PWD}/rda/rvp8proc/open         rcs  noiris    rda
MKDIR ${PWD}/rda/rvp8proc/site         rcs  noiris    rda
MKDIR ${PWD}/rda/softplane             rcs  noiris    rda

# ---- TS ----
#
MKDIR ${PWD}/ts                        rcs    iris    rda
MKDIR ${PWD}/ts/lib                    rcs    iris    rda
MKDIR ${PWD}/ts/archive                rcs  noiris    rda
MKDIR ${PWD}/ts/archlib                rcs    iris    rda
MKDIR ${PWD}/ts/exec                   rcs  noiris    rda
MKDIR ${PWD}/ts/export                 rcs  noiris    rda
MKDIR ${PWD}/ts/switch                 rcs  noiris    rda
MKDIR ${PWD}/ts/view                   rcs    iris    rda

# ---- UTILS ----
#
MKDIR ${PWD}/utils                     rcs    iris    rda
MKDIR ${PWD}/utils/adids               rcs    iris  norda
MKDIR ${PWD}/utils/agcalx              rcs    iris  norda
MKDIR ${PWD}/utils/antenna             rcs    iris    rda
MKDIR ${PWD}/utils/antennax            rcs    iris    rda
MKDIR ${PWD}/utils/ascopex             rcs    iris    rda
MKDIR ${PWD}/utils/asterix             rcs    iris  norda
MKDIR ${PWD}/utils/audiox              rcs    iris    rda
MKDIR ${PWD}/utils/bitex2              rcs    iris    rda
MKDIR ${PWD}/utils/bufr                rcs    iris  norda
MKDIR ${PWD}/utils/colormap            rcs    iris    rda
MKDIR ${PWD}/utils/colorsetup          rcs    iris    rda
MKDIR ${PWD}/utils/custom              rcs    iris    rda
MKDIR ${PWD}/utils/dsp                 rcs    iris    rda
MKDIR ${PWD}/utils/dspx                rcs    iris    rda
MKDIR ${PWD}/utils/examples            rcs    iris    rda
MKDIR ${PWD}/utils/extras              rcs    iris    rda
MKDIR ${PWD}/utils/gaincalx            rcs    iris  norda
MKDIR ${PWD}/utils/gaintest            rcs    iris  norda
MKDIR ${PWD}/utils/grib1               rcs    iris  norda
MKDIR ${PWD}/utils/hdf5                rcs    iris  norda
MKDIR ${PWD}/utils/install             rcs    iris    rda
MKDIR ${PWD}/utils/irisnet             rcs    iris  norda
MKDIR ${PWD}/utils/llwas               rcs    iris  norda
MKDIR ${PWD}/utils/manuals             rcs    iris    rda
MKDIR ${PWD}/utils/misc                rcs    iris    rda
if [ "${MACHINE}" = "Linux" ] ; then
  MKDIR ${PWD}/utils/nordrad2          rcs alliris  norda
fi
MKDIR ${PWD}/utils/overlay             rcs    iris    rda
MKDIR ${PWD}/utils/pipes_in            rcs    iris  norda
MKDIR ${PWD}/utils/pipes_out           rcs    iris  norda
MKDIR ${PWD}/utils/pview               rcs    iris  norda
MKDIR ${PWD}/utils/rainbow             rcs    iris  norda
MKDIR ${PWD}/utils/ribsetup            rcs    iris  norda
MKDIR ${PWD}/utils/rtdisp              rcs    iris    rda
MKDIR ${PWD}/utils/setupx              rcs    iris    rda
MKDIR ${PWD}/utils/sigbru              rcs    iris    rda
MKDIR ${PWD}/utils/stcwavex            rcs    iris  norda
MKDIR ${PWD}/utils/tdwr                rcs    iris  norda
MKDIR ${PWD}/utils/test                rcs    iris    rda
MKDIR ${PWD}/utils/triggerx            rcs    iris  norda
MKDIR ${PWD}/utils/utilities           rcs    iris  norda
MKDIR ${PWD}/utils/vribbon             rcs    iris  norda
MKDIR ${PWD}/utils/zautox              rcs    iris  norda
MKDIR ${PWD}/utils/zauto7              rcs    iris    rda
MKDIR ${PWD}/utils/zcal                rcs    iris    rda


if [ "${MACHINE}" = "Linux" ] ; then
  # ---- UTILS ----
  #
  MKDIR ${PWD}/utils/dvd_tools         rcs    iris    rda

  # ---- IRISWEB ----
  #
  MKDIR ${PWD}/web/html                rcs alliris  norda
  MKDIR ${PWD}/web/images              rcs alliris  norda
  MKDIR ${PWD}/web/libs                rcs alliris  norda
  MKDIR ${PWD}/web/sigbeans            rcs alliris  norda

  # ---- IRISWEBLIBS ----
  MKDIR ${PWD}/web/libs/mathutils/src/gif_lib      rcs alliris  norda
  MKDIR ${PWD}/web/libs/mathutils/src/himath_lib   rcs alliris  norda
  MKDIR ${PWD}/web/libs/mathutils/src/image_lib    rcs alliris  norda
  MKDIR ${PWD}/web/libs/mathutils/src/misc_lib     rcs alliris  norda
  MKDIR ${PWD}/web/libs/mathutils/src/product      rcs alliris  norda
  MKDIR ${PWD}/web/libs/mathutils/src/projection   rcs alliris  norda
  MKDIR ${PWD}/web/libs/mathutils/src/setup        rcs alliris  norda
  MKDIR ${PWD}/web/libs/mathutils/src/sigmath_lib  rcs alliris  norda
  MKDIR ${PWD}/web/libs/mathutils/src/sigtypes     rcs alliris  norda
  MKDIR ${PWD}/web/libs/mathutils/src/user_lib     rcs alliris  norda
  MKDIR ${PWD}/web/libs/mathutils/classes          rcs alliris  norda

  # ---- IRISWLW ----
  #
  MKDIR ${PWD}/web/wlw/applets         rcs alliris  norda
  MKDIR ${PWD}/web/wlw/pluginApplet    rcs alliris  norda

  MKDIR ${PWD}/web/wlw/servlets/irisservlets/WEB-INF/classes \
                                       rcs alliris  norda
fi

if [ "${CREATE}" = "true" ] ; then TENSE="were"
                              else TENSE="would be"
fi
if (( CREATECOUNT > 0 )) ; then
  echo
  echo "${CREATECOUNT} directories ${TENSE} created"
else
  echo "No directories ${TENSE} created"
fi
