#!/bin/sh
set -e
cwd="`pwd`"
date="`date +'%d %h %Y'`"
process () {
(cd config &&
rm -f trace &&
m4 -P -I "$config" -DDB_DATE="$date" \
common/init.m4 config.m4 common/main.m4 - common/final.m4
)
}
txtconvert () {
src=$1; dst=$2
echo " generating $dst from $src ..."
rm -f html/txt/$dst.html html/txt/$dst.out
perl -ne 'print unless m/^Other pages:$/ .. /^\
/' \
html/$src.out >html/txt/$dst.html
HOME=/dev/null lynx -nolist -dump -cfg=html/lynx-cfg \
file://localhost/$cwd/html/txt/$dst.html >html/txt/$dst.out
rm html/txt/$dst.html
}
config=local
if [ $# != 0 ]; then config="$1"; shift; fi
if [ $# != 0 ]; then echo >&2 'usage: ./build []'; false; fi
if [ ! -f config/$config/config.m4 ]; then echo >&2 "no such config: $config"; false; fi
errs="`echo 'm4_undivert(1)' | process | sed -ne '/[^ \t]/ s/^/ /p'`"
if [ "x$errs" != x ]
then
echo >&2 'unexpected residues:'
echo "$errs"
false
fi
echo "macro substitutions ..."
for f in `find -name '*.in'`
do
h="`echo $f | sed -e 's/\.in$//'`"
process <"$f" >"$h.out"
mv config/trace "$h.trace"
if egrep 'DBC?U?_' /dev/null "$h.out"
then
echo >&2 'undefined macros'
false
fi
[ ! -x "$f" ] || chmod +x "$h.out"
done
echo "documentation conversion ..."
txtconvert Reporting.html bug-reporting.txt
txtconvert Access.html bug-log-access.txt
txtconvert server-request.html bug-log-mailserver.txt
txtconvert Developer.html bug-maint-info.txt
txtconvert server-control.html bug-maint-mailcontrol.txt
txtconvert server-refcard.html bug-mailserver-refcard.txt
cgilibexist=`echo 'test -f DBC_CGILIB_PATH && echo true || echo false' | process`
htaccesspath=`echo DBC_HTACCESS_PATH | process`
rm -f install install.new
process <<'END' >install.new
#!/bin/sh
set -e
test -d DBC_BASE || mkdir DBC_BASE
bugsid () {
echo "installing $1 ..."
test -d "$2" || mkdir "$2"
cd "$1"
for f in *.out
do
h="`echo $f | sed -e 's/\.out$//'`"
rm -f "$2/$f"
cp "./$f" "$2/"
mv -f "$2/$f" "$2/$h"
done
cd "$3"
}
bugsid scripts DBC_SCRIPT_PATH ..
bugsid html DBC_HTML_PATH ..
bugsid html/txt DBC_DOCDIR_PATH ../..
bugsid cgi DBC_CGI_PATH ..
END
if [ "x$htaccesspath" != x ]; then
process <>install.new
cat <<'END2' >$htaccesspath.new
DBC_HTACCESS_CONTENTS
END2
mv -f $htaccesspath.new $htaccesspath
END
fi
if $cgilibexist
then
cgiii='cgi-lib already exists in DBC_CGILIB_PATH'
else
cgiii=' DBC_CGILIB_PATH'
process <<'END' >>install.new
echo "installing cgi-lib.pl ..."
cp cgi/cgi-lib.pl DBC_CGILIB_PATH.new
mv -f DBC_CGILIB_PATH.new DBC_CGILIB_PATH
END
fi
process >>install.new <<'END'
echo "setting up bugs database ..."
DBC_SCRIPT_PATH/initialise
echo "done."
echo "You will have to intall the crontab (misc/crontab.out) yourself."
exit 0
END
chmod +x install.new
mv -f install.new install
cgi="`cd cgi && echo *.out | sed -e 's/\.out//g'`"
process <