74 lines
2.4 KiB
Bash
74 lines
2.4 KiB
Bash
|
#!/bin/bash
|
||
|
set -e
|
||
|
|
||
|
echo "WARNING: please announce a maintenance! (waiting 3s)"
|
||
|
sleep 3
|
||
|
|
||
|
if [ -z "$1" ]
|
||
|
then
|
||
|
echo "ERROR: Can't continue. Version querying not implemented as we might not use the latest major release."
|
||
|
echo "Usage: bash ./update.sh 9.9.9"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
echo "This script will stop the Znuny daemon, but Cron can start it again."
|
||
|
read -p "Is the Cronjob for [ otrs.Daemon.pl ] commented? (yY)" -n 1 -r
|
||
|
echo
|
||
|
if [[ ! $REPLY =~ ^[Yy]$ ]]
|
||
|
then
|
||
|
echo "Please make sure Cron does not start our daemon."
|
||
|
[[ "$0" = "$BASH_SOURCE" ]] && exit 1 || return 1 # https://stackoverflow.com/questions/1885525/how-do-i-prompt-a-user-for-confirmation-in-bash-script
|
||
|
fi
|
||
|
|
||
|
cd $HOME/znuny
|
||
|
|
||
|
echo "not stopping Cron.sh, it might (FIXME) not apply"
|
||
|
#bin/Cron.sh stop
|
||
|
|
||
|
$HOME/znuny/bin/otrs.Daemon.pl stop
|
||
|
|
||
|
mkdir -p $HOME/tmp
|
||
|
cd $HOME/tmp
|
||
|
|
||
|
wget https://download.znuny.org/releases/znuny-$1.tar.gz
|
||
|
tar -xf znuny-$1.tar.gz
|
||
|
|
||
|
rm -v *tar.gz
|
||
|
mv -v znuny-$1 $HOME/
|
||
|
|
||
|
echo "NOT running otrs.SetPermissions.pl because we are not usually elevated (not checking)"
|
||
|
|
||
|
cd $HOME
|
||
|
cp -av $HOME/znuny/Kernel/Config.pm $HOME/znuny-$1/Kernel/
|
||
|
|
||
|
if [ -n "$(ls -A $HOME/znuny/var/article 2>/dev/null)" ]; then
|
||
|
cp -rpv $HOME/znuny/var/article/* $HOME/znuny-$1/var/article/
|
||
|
else
|
||
|
echo "nothing found in var/article"
|
||
|
fi
|
||
|
|
||
|
for f in $(find -L $HOME/znuny -maxdepth 1 -type f -name .\* -not -name \*.dist); do cp -av "$f" $HOME/znuny-$1/; done
|
||
|
for f in $(find -L $HOME/znuny/var/cron -maxdepth 1 -type f -name .\* -not -name \*.dist); do cp -av "$f" $HOME/znuny-$1/var/cron/; done
|
||
|
|
||
|
rm -v $HOME/znuny
|
||
|
ln -sv $HOME/znuny-$1 $HOME/znuny
|
||
|
|
||
|
$HOME/znuny/bin/otrs.Console.pl Maint::Database::Check
|
||
|
$HOME/znuny/bin/otrs.CheckModules.pl --all
|
||
|
|
||
|
migrationscript=`ls $HOME/znuny-$1/scripts/MigrateToZnuny* | xargs -n 1 basename`
|
||
|
|
||
|
read -p "Our migrationscript appears to be: [ $migrationscript ]. Is this correct? (yY)" -n 1 -r
|
||
|
echo
|
||
|
if [[ ! $REPLY =~ ^[Yy]$ ]]
|
||
|
then
|
||
|
echo "Skipping [ Admin::Package::UpgradeAll ] and [ $migrationscript ]..."
|
||
|
[[ "$0" = "$BASH_SOURCE" ]] && exit 1 || return 1 # https://stackoverflow.com/questions/1885525/how-do-i-prompt-a-user-for-confirmation-in-bash-script
|
||
|
fi
|
||
|
|
||
|
$HOME/znuny/scripts/MigrateToZnuny6_5.pl
|
||
|
$HOME/znuny/bin/otrs.Console.pl Admin::Package::UpgradeAll
|
||
|
|
||
|
echo Script ended without errors!
|
||
|
echo "https://doc.znuny.org/znuny_lts/releases/installupdate/"
|
||
|
echo "https://wiki.hostsharing.net/index.php?title=Znuny_installieren#Updates"
|