1#!/bin/sh
2
3PKGNAME=$1
4[ ! -n ${PKG_PREFIX} ] && exit 1
5PREFIX=${PKG_PREFIX}
6
7DBDIR="%%DBDIR%%"
8ETCDIR="%%ETCDIR%%"
9RUNDIR="%%RUNDIR%%"
10TMPDIR="%%TMPDIR%%"
11NEWSBASE="%%NEWSBASE%%"
12NEWSSPOOL="%%NEWSSPOOL%%"
13DBZ_FILES="%%DBZ_FILES%%"
14
15EGDIR="%%EGDIR%%"
16
17case $2 in
18    PRE-INSTALL)
19	echo "===>  Checking for old database files"
20	if [ ! -d ${DBDIR} ]; then
21		mkdir -p ${DBDIR}
22		mkdir -p ${EGDIR}/db
23		chown news:news ${DBDIR}
24	fi
25	;;
26    CHECK-CONF)
27	ETCDIR=${3}
28	echo "Checking for configuration files"
29	for f in $(find ${EGDIR} -type f -mindepth 1 -maxdepth 1 -execdir echo "{}" \;)
30		do
31			REALFILE=${ETCDIR}/${f}
32			EGFILE=${EGDIR}/${f}
33			echo -n "Checking if ${REALFILE} exists:   "
34			if [ -e ${REALFILE} ]
35				then
36					echo "[YES]"
37				else
38					echo "[NO]  Installing ${EGFILE} to ${REALFILE}"
39					cp -p ${EGFILE} ${REALFILE}
40			fi
41		done
42	;;
43    POST-INSTALL)
44        install -d -o news -g news -m 755 \
45	    ${RUNDIR} \
46	    ${NEWSSPOOL} \
47	    ${NEWSSPOOL}/archive \
48	    ${NEWSSPOOL}/articles \
49	    ${NEWSSPOOL}/incoming \
50	    ${NEWSSPOOL}/incoming/bad \
51	    ${NEWSSPOOL}/innfeed \
52	    ${NEWSSPOOL}/outgoing \
53	    ${NEWSSPOOL}/overview \
54	    ${TMPDIR}
55
56	if [ ${3:-""} = "PORTMODE" ]; then
57		fc=`ls ${EGDIR}/db/* 2>/dev/null | wc -l`
58
59		if [ -d ${EGDIR}/db -a $fc -eq 0 ]; then
60			for f in ${DBDIR}/*; do
61				cp -pR ${f} ${EGDIR}/db
62			done
63		else
64			mkdir -p ${EGDIR}/db
65			for f in ${DBDIR}/*; do
66				touch ${EGDIR}/db/${f##*/}
67			done
68		fi
69
70		# Fix permissions
71
72		for f in ${ETCDIR}/*.ctl ${ETCDIR}/readers.conf; do
73			chmod 640 ${f}
74		done
75	else
76		fc=`ls ${DBDIR}/* 2>/dev/null | wc -l`
77
78		if [ -d ${DBDIR} -a $fc -eq 0 ]; then
79			for f in ${EGDIR}/db/*; do
80				cp -pR ${f} ${DBDIR}
81			done
82			(if [ ! -f ${DBDIR}/history ] ; then
83				echo 'Creating empty history database...'
84				cd ${DBDIR}
85				touch history
86				chmod 644 history
87				chown news:news history
88				su -fm news -c "${NEWSBASE}/bin/makedbz -i"
89				for s in ${DBZ_FILES} ; do
90					mv history.n.${s} history.${s}
91				done
92			fi)
93		fi
94	fi
95
96	;;
97    *)
98	echo "Unexpected Argument $2!!!"
99	exit 1
100	;;
101esac
102exit 0
103