handle re-install gracefully

This commit is contained in:
maren 2024-04-13 19:35:41 -04:00
parent 06725dfcd5
commit b13b57f15b

View file

@ -1,14 +1,9 @@
#!/bin/sh -e
# install.sh
installtarget=/usr/local/bin
chatlogdir=/var/log/bunkchat
chatlog=chat.log
if ! [ "$(id -u)" = 0 ]; then
echo "ERROR: please run install with root permission" >&2
exit 1
fi
chattrfailed() {
set +e
rm -rf $chatlogdir
@ -18,26 +13,38 @@ chattrfailed() {
exit 1
}
# do this setup first in case chattr fails
# mk chat directory and touch file
mkdir $chatlogdir
prep() {
mkdir -p $chatlogdir
chmod 755 $chatlogdir
touch ${chatlogdir}/${chatlog}
chmod 666 ${chatlogdir}/${chatlog}
# if chattr +a not supported on this file system catch error and clean up
# if chattr +a not supported on this file system, catch error and clean up
chattr +a ${chatlogdir}/${chatlog} || chattrfailed
}
install() {
cp proclaim heed scry $installtarget
chmod 755 ${installtarget}/proclaim
chmod 755 ${installtarget}/heed
chmod 755 ${installtarget}/scry
chown root:root ${installtarget}/proclaim
chown root:root ${installtarget}/heed
chown root:root ${installtarget}/scry
echo "SUCCESS! bunkchat installed!"
exit 0
}
# check for root perms
if ! [ "$(id -u)" = 0 ]; then
echo "ERROR: please run install with root permission" >&2
exit 1
fi
# if chat.log exists, skip prep
if [ -f ${chatlogdir}/${chatlog} ]; then
install
else
prep
install
fi