#!/bin/sh
#
# nbsp user/group, directories owned by user, and directories owned by root
#
user=noaaport
home=/var/noaaport
#
userdirs="/var/run/nbsp
/var/log/noaaport
/var/log/nbsp
/var/log/nbsp/www
/var/noaaport
/var/noaaport/nbsp
/var/noaaport/nbsp/db
/var/noaaport/nbsp/dev
/var/noaaport/nbsp/spool
/var/noaaport/nbsp/cspool
/var/noaaport/nbsp/tmp
/var/noaaport/nbsp/inv
/var/noaaport/nbsp/rss
/var/noaaport/nbsp/recover
/var/noaaport/nbsp/stats
/var/noaaport/data
/var/noaaport/data/rst
/var/noaaport/data/digatmos
/var/noaaport/data/digatmos/nexrad/nids
/var/noaaport/data/digatmos/nexrad/craft
/var/noaaport/data/gempak
/var/noaaport/data/gis
/var/noaaport/data/metar
/var/noaaport/data/msg
/var/noaaport/data/cap
/var/noaaport/data/upperair
/var/noaaport/data/grib
/var/noaaport/data/track
/var/noaaport/data/weatherscope
/var/noaaport/data/inv
/var/noaaport/data/inv/rst
/var/noaaport/data/inv/digatmos
/var/noaaport/data/inv/gempak
/var/noaaport/data/inv/gis
/var/noaaport/data/inv/cap
/var/noaaport/archive
/var/noaaport/archive/data
/var/noaaport/archive/data/digatmos
/var/noaaport/archive/data/metar
/var/noaaport/archive/data/spool
/var/noaaport/archive/inv
/var/noaaport/archive/inv/digatmos
/var/noaaport/www"
#
rootdirs="/usr/local/etc/nbsp/defaults
/usr/local/etc/nbsp/site
/usr/local/etc/nbsp/defaults/nbspd.conf.d
/usr/local/etc/nbsp/rc.d
/usr/local/etc/nbsp/rc.d/rst
/usr/local/etc/nbsp/rc.d/da
/usr/local/etc/nbsp/rc.d/gp
/usr/local/etc/nbsp/rc.d/nbsp
/usr/local/etc/nbsp/rc.d/emwin
/usr/local/etc/nbsp/rc.d/nntp
/usr/local/etc/nbsp/rc.d/rstnntp
/usr/local/etc/nbsp/rc.d/ldm
/usr/local/etc/nbsp/rc.d/pan
/usr/local/etc/nbsp/rc.d/cap
/usr/local/etc/nbsp/rc.d/grib
/usr/local/etc/nbsp/rc.d/net
/usr/local/share/nbsp/defaults
/usr/local/share/nbsp/site
/usr/local/libexec/nbsp/site
/usr/local/libexec/nbsp/tclhttpd/site"
#
# Directories for optional files
#
docdir=/usr/local/share/doc/nbsp
confdir=/usr/local/etc/nbsp
sharedir=/usr/local/share/nbsp
rcdir=/etc/init.d
nexraddir=/var/noaaport/data/digatmos/nexrad
logrotatedir=/etc/logrotate.d

useradd -M -d $home $user > /dev/null 2>&1
status=$?
if [ $status -ne 9 -a $status -ne 0 ]
then
    echo "Error creating user $user."
    exit 1
fi

for d in $userdirs
do
  [ -e $d ] || install -d -m 755 -o $user -g $user $d
done

for d in $rootdirs
do
  [ -e $d ] || install -d -m 755 $d
done

#
# install optional files from doc directory
#
install -m 0755 $docdir/nbspd.sh-sample $rcdir/nbspd
if [ -n "`which chkconfig`" ]
then
	chkconfig --add nbspd
elif [ -n "`which update-rc.d`" ]
then
	update-rc.d nbspd defaults 99
fi

savedir=`pwd`
cd $nexraddir
install -m 0644 $docdir/leveld.cfg-sample config.cfg
[ -e grlevel3.cfg ] || ln -s config.cfg grlevel3.cfg
#
cd $nexraddir/nids
install -m 0644 $docdir/level3.cfg-sample config.cfg
[ -e grlevel3.cfg ] || ln -s config.cfg grlevel3.cfg
#
cd $nexraddir/craft
install -m 0644 $docdir/level2.cfg-sample config.cfg
[ -e grlevel2.cfg ] || ln -s config.cfg grlevel2.cfg
cd $savedir

#
# configure default
#
cd $confdir/dist
for file in README CONFIGURING \
    gempak.env-sample \
    *.conf-sample \
    *.rc-sample \
    *.def-sample
do
	name=${file%%"-sample"}
	cp $file ../$name
done

for file in *-defaults
do
	name=${file%%"-defaults"}
	cp $file ../defaults/$name
done

for file in *-templates.tgz
do
  tar -C ../defaults --no-same-owner -xzf $file
done

#
# shared files
#
cd $sharedir/dist
for file in *-share.tgz
do
  tar -C ../defaults -xzf $file
done

#
# www and tclhttpd
#
cd /usr/local/share/doc/nbsp
tar -C /var/noaaport/www -x -z -f www.tgz
tar -C /var/noaaport/www/htdocs/pub -x -z -f gis-bundle-www-templates.tgz
cd /var/noaaport/www
chown -R $user:$user *
cd htdocs/pub
[ -e "rst" ] || ln -s /var/noaaport/data/rst rst
[ -e "digatmos" ] || ln -s /var/noaaport/data/digatmos digatmos
[ -e "gempak" ] || ln -s /var/noaaport/data/gempak gempak
[ -e "grib" ] || ln -s /var/noaaport/data/grib grib
[ -e "msg" ] || ln -s /var/noaaport/data/msg msg
[ -e "cap" ] || ln -s /var/noaaport/data/cap cap
[ -e "track" ] || ln -s /var/noaaport/data/track track
[ -d "metarplot" ] || install -d -m 755 -o $user -g $user metarplot
[ -d "statplot" ] || install -d -m 755 -o $user -g $user statplot
[ -d "radmap" ] || install -d -m 755 -o $user -g $user radmap
[ -d "satmap" ] || install -d -m 755 -o $user -g $user satmap
[ -d "npstats" ] || install -d -m 755 -o $user -g $user npstats
[ -d "weatherscope/conf" ] || \
    install -d -m 755 -o $user -g $user weatherscope/conf
[ -d "weatherscope/client" ] || \
    install -d -m 755 -o $user -g $user weatherscope/client
[ -e "weatherscope/data" ] || \
    ln -s /var/noaaport/data/weatherscope weatherscope/data
[ -d "gis/maps/defaults" ] || \
    install -d -m 755 -o $user -g $user gis/maps/defaults
[ -d "gis/maps/site" ] || \
    install -d -m 755 -o $user -g $user gis/maps/site
[ -e "gis/data" ] || ln -s /var/noaaport/data/gis gis/data
[ -e "gis/legends" ] || \
    ln -s /usr/local/etc/nbsp/defaults/gis/legends gis/legends

#
# Display message
#
cat <<__EOF__
-
The configuration files are installed in /usr/local/etc/nbsp.

The installation process should have created various directories
under /var/noaaport, and already enabled the rstfilter and dafilter.
In addition the web server is enabled by default, and can be
accesed as
	
	http://localhost:8015
or
	http://<hostname>:8015

The program will run in this default installation without further
configuration.

An init script is also installed to start automatically the program
at boot time, and stop when the system is shutdown.
It can also be started or stoped manually by executing

	/etc/init.d/nbspd start
	/etc/init.d/nbspd stop
-

NOTE:
====
As of version 2.0.r2, nbspd runs as user noaaport, and therefore
the directories where the daemon writes must be owned by that user:

	chown -R noaaport:noaaport /var/noaaport
	chown -R noaaport:noaaport /var/log/noaaport
	chown -R noaaport:noaaport /var/log/nbsp
	chown -R noaaport:noaaport /var/run/nbsp

During a fresh install, the package installer will create the
directories with the appropriate ownership, but not during an upgrade.
If you are uprading from an older version, those commands must be
executed manually.
-

NOTE:
====
See the files

	/usr/local/etc/nbsp/defaults/nbspd.conf
	/usr/local/etc/nbsp/dist/sysctl.conf-ex

for sysctl notes.  NOTE: Alternatively execute 'nbspconfigure-dvbs2' and
it will carry out the steps indicated in those files.
-

NOTE:
====
To configure Nbsp with a memory based spool for a pure ingest role
(no processing but network aware and the inventory enabled), execute

	nbspreconfigure mspoolbdb

and check the files in

	defaults/configs

Executing 'nbspreconfigure' without arguments, will revert to the
standard default configuration.
-

NOTE:
====
It is recommended to omit scanning the directory "/var/noaaport"
by the periodic updatedb script. Executing

	nbspconfigure-updatedb

updates the "/etc/updatedb.conf" to include the noaaport directory in
the list of directories to omit.
-
__EOF__
