handle re-install gracefully
This commit is contained in:
parent
06725dfcd5
commit
b13b57f15b
1 changed files with 32 additions and 25 deletions
57
install.sh
57
install.sh
|
@ -1,14 +1,9 @@
|
||||||
#!/bin/sh -e
|
#!/bin/sh -e
|
||||||
# install.sh
|
|
||||||
installtarget=/usr/local/bin
|
installtarget=/usr/local/bin
|
||||||
chatlogdir=/var/log/bunkchat
|
chatlogdir=/var/log/bunkchat
|
||||||
chatlog=chat.log
|
chatlog=chat.log
|
||||||
|
|
||||||
if ! [ "$(id -u)" = 0 ]; then
|
|
||||||
echo "ERROR: please run install with root permission" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
chattrfailed() {
|
chattrfailed() {
|
||||||
set +e
|
set +e
|
||||||
rm -rf $chatlogdir
|
rm -rf $chatlogdir
|
||||||
|
@ -18,26 +13,38 @@ chattrfailed() {
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
# do this setup first in case chattr fails
|
prep() {
|
||||||
# mk chat directory and touch file
|
mkdir -p $chatlogdir
|
||||||
mkdir $chatlogdir
|
chmod 755 $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
|
||||||
|
chattr +a ${chatlogdir}/${chatlog} || chattrfailed
|
||||||
|
}
|
||||||
|
|
||||||
touch ${chatlogdir}/${chatlog}
|
install() {
|
||||||
chmod 666 ${chatlogdir}/${chatlog}
|
cp proclaim heed scry $installtarget
|
||||||
# if chattr +a not supported on this file system catch error and clean up
|
chmod 755 ${installtarget}/proclaim
|
||||||
chattr +a ${chatlogdir}/${chatlog} || chattrfailed
|
chmod 755 ${installtarget}/heed
|
||||||
|
chmod 755 ${installtarget}/scry
|
||||||
|
chown root:root ${installtarget}/proclaim
|
||||||
|
chown root:root ${installtarget}/heed
|
||||||
|
chown root:root ${installtarget}/scry
|
||||||
|
|
||||||
cp proclaim heed scry $installtarget
|
echo "SUCCESS! bunkchat installed!"
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
chmod 755 ${installtarget}/proclaim
|
# check for root perms
|
||||||
chmod 755 ${installtarget}/heed
|
if ! [ "$(id -u)" = 0 ]; then
|
||||||
chmod 755 ${installtarget}/scry
|
echo "ERROR: please run install with root permission" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
chown root:root ${installtarget}/proclaim
|
# if chat.log exists, skip prep
|
||||||
chown root:root ${installtarget}/heed
|
if [ -f ${chatlogdir}/${chatlog} ]; then
|
||||||
chown root:root ${installtarget}/scry
|
install
|
||||||
|
else
|
||||||
|
prep
|
||||||
echo "SUCCESS! bunkchat installed!"
|
install
|
||||||
exit 0
|
fi
|
||||||
|
|
Loading…
Reference in a new issue