mirror of
https://github.com/xcat2/xcat-dep.git
synced 2024-11-27 03:39:11 +00:00
bf08ce086d
Former-commit-id: 342cdeb67cc99dc5c0da1095d07cf5f239b58c4c
141 lines
3.1 KiB
Bash
141 lines
3.1 KiB
Bash
#!/bin/sh -e
|
|
#
|
|
# TODO:
|
|
# - error checking on values provided by debconf frontend
|
|
|
|
BASEDIR=/tftpboot
|
|
DAEMON="--daemon"
|
|
|
|
. /usr/share/debconf/confmodule
|
|
db_version 2.0
|
|
|
|
db_get atftpd/configure
|
|
if [ "$RET" = "true" ]; then
|
|
|
|
db_get atftpd/use_inetd
|
|
if [ "$RET" ]; then
|
|
if [ "$RET" = "true" ]; then
|
|
USE_INETD=true
|
|
else
|
|
USE_INETD=false
|
|
fi
|
|
else
|
|
USE_INETD=true
|
|
fi
|
|
|
|
db_get atftpd/port
|
|
if [ "$RET" ]; then
|
|
TFTPD_PORT="--port $RET"
|
|
fi
|
|
|
|
db_get atftpd/tftpd-timeout
|
|
if [ "$RET" ]; then
|
|
TFTPD_TIMEOUT="--tftpd-timeout $RET"
|
|
fi
|
|
|
|
db_get atftpd/retry-timeout
|
|
if [ "$RET" ]; then
|
|
RETRY_TIMEOUT="--retry-timeout $RET"
|
|
fi
|
|
|
|
db_get atftpd/maxthread
|
|
if [ "$RET" ]; then
|
|
MAXTHREAD="--maxthread $RET"
|
|
fi
|
|
|
|
db_get atftpd/timeout
|
|
if [ "$RET" != "true" ]; then
|
|
NOTIMEOUT="--no-timeout"
|
|
fi
|
|
|
|
db_get atftpd/tsize
|
|
if [ "$RET" != "true" ]; then
|
|
NOTSIZE="--no-tsize"
|
|
fi
|
|
|
|
db_get atftpd/blksize
|
|
if [ "$RET" != "true" ]; then
|
|
NOBLKSIZE="--no-blksize"
|
|
fi
|
|
|
|
db_get atftpd/multicast
|
|
if [ "$RET" != "true" ]; then
|
|
NOMCAST="--no-multicast"
|
|
else
|
|
db_get atftpd/mcast_port
|
|
if [ "$RET" ]; then
|
|
MCASTPORT="--mcast-port $RET"
|
|
fi
|
|
db_get atftpd/mcast_addr
|
|
if [ "$RET" ]; then
|
|
MCASTADDR="--mcast-addr $RET"
|
|
fi
|
|
fi
|
|
|
|
db_get atftpd/verbosity
|
|
if [ "$RET" ]; then
|
|
RET=`echo $RET | cut -f1 -d ' '`
|
|
VERBOSITY="--verbose=$RET"
|
|
fi
|
|
|
|
db_get atftpd/logtofile
|
|
if [ "$RET" = "true" ]; then
|
|
db_get atftpd/logfile
|
|
if [ "$RET" ]; then
|
|
LOGFILE="--logfile $RET"
|
|
# if the file doesn't exist, create it
|
|
if [ ! -f $RET ]; then
|
|
touch $RET
|
|
chown nobody.nogroup $RET
|
|
chmod 640 $RET
|
|
fi
|
|
# modify the logrotate file
|
|
echo -e "$RET {\n" \
|
|
" daily\n" \
|
|
" rotate 5\n" \
|
|
" compress\n" \
|
|
" copytruncate\n" \
|
|
" missingok\n" \
|
|
"}" > /etc/logrotate.d/atftpd
|
|
fi
|
|
else
|
|
LOGFILE=""
|
|
# remove the logrotate file
|
|
rm -f /etc/logrotate.d/atftpd
|
|
fi
|
|
|
|
db_get atftpd/basedir
|
|
if [ "$RET" ]; then
|
|
BASEDIR="$RET"
|
|
fi
|
|
|
|
fi
|
|
|
|
# remove any occurance
|
|
update-inetd --remove "tftp.*"
|
|
|
|
# Make sure atftpd is stoped. Needed for dpkg-reconfigure.
|
|
if [ -e "/etc/init.d/atftpd" ]; then
|
|
/etc/init.d/atftpd stop
|
|
fi
|
|
|
|
if [ "$USE_INETD" = "false" ]; then
|
|
echo "USE_INETD=false" > /etc/default/atftpd
|
|
echo "OPTIONS=\"$DAEMON $TFTPD_PORT $RETRY_TIMEOUT $NOTIMEOUT $NOTSIZE $NOBLKSIZE $NOMCAST \
|
|
$MCASTPORT $MCASTADDR $MAXTHREAD $VERBOSITY $LOGFILE $BASEDIR\"" >> /etc/default/atftpd
|
|
else
|
|
update-inetd --group BOOT --add "tftp dgram udp wait \
|
|
nobody /usr/sbin/tcpd /usr/sbin/in.tftpd $TFTPD_TIMEOUT $RETRY_TIMEOUT $NOTIMEOUT $NOTSIZE $NOBLKSIZE \
|
|
$NOMCAST $MCASTPORT $MCASTADDR $MAXTHREAD $VERBOSITY $LOGFILE $BASEDIR"
|
|
echo "USE_INETD=true" > /etc/default/atftpd
|
|
echo "OPTIONS=\"$DAEMON $TFTPD_PORT $TFTPD_TIMEOUT $RETRY_TIMEOUT $NOTIMEOUT $NOTSIZE $NOBLKSIZE $NOMCAST \
|
|
$MCASTPORT $MCASTADDR $MAXTHREAD $VERBOSITY $LOGFILE $BASEDIR\"" >> /etc/default/atftpd
|
|
fi
|
|
|
|
#DEBHELPER#
|
|
|
|
# tell debconf we are done. otherwise, it hangs waiting for the daemon.
|
|
db_stop;
|
|
|
|
exit 0;
|