diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..2043eb98a979bb7a8d93ffa7f5adae6e1ef8b0cd --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +main.env diff --git a/main.env.sample b/main.env.sample index 184cb6adaec0d2ab9bdefee23d49c851f01f6d40..782770c02b6740e44b55ae95d06b15790028a6b8 100644 --- a/main.env.sample +++ b/main.env.sample @@ -5,3 +5,6 @@ export DOMAIN="dev.tetras-libre.fr" export SERVER_ADMIN="admin@dev.tetras-libre.fr" # can be set to nginx export WEB_SERVER=apache2 +# You can define here some services that are badly detected by checkrestart +# but often need to be restarted after upgrade +export EXTRAS_SERVICES_TO_RESTART="systemd-logind" diff --git a/upgradeAll.sh b/upgradeAll.sh index 2b07a9279f36aff293296dcf5c619e44e1177259..641ca0fcfd6ad3de3ab516c57d2a55fc258a0d5e 100644 --- a/upgradeAll.sh +++ b/upgradeAll.sh @@ -39,6 +39,7 @@ do . $script fi done -systemctl restart systemd-logind -systemctl restart `checkrestart | awk '/^service/{print $2} /^systemctl/{print $3}'` +services="`checkrestart | awk '/^service/{print $2} /^systemctl/{print $3}'` \ + $EXTRAS_SERVICES_TO_RESTART" +[ ! -z "$services" ] && systemctl restart $services checkrestart diff --git a/upgradeNextcloud.sh b/upgradeNextcloud.sh index ba19d8cb39ef9835be886a8e6a742a9e65fcac34..e7caedc0b240904a9d54df16862691cb5588a5e8 100644 --- a/upgradeNextcloud.sh +++ b/upgradeNextcloud.sh @@ -22,11 +22,44 @@ htuser=${htuser:-'www-data'} ocupdater=${ocupdater:-"$NEXTCLOUD_INSTALL_DIR/updater/updater.phar"} occ=$NEXTCLOUD_INSTALL_DIR/occ APPS=`sudo -u $htuser php $occ app:list | awk 'BEGIN{ok=1} /^Disabled:/{ok=0} {if(ok==1){print $2}}' | sed 's/:$//'` + if [ ! -d $NEXTCLOUD_INSTALL_DIR ] then echo "Nextcloud is not installed, aborting" exit 1 fi + +if [ -z $MAINTENANCE_LEVEL ] +then + echo "Maintenance level cannot be detected, please update your main.env" + exit 1 +fi + +current_vesion=`sudo -u www-data php /var/www/nextcloud/occ status \ + | awk '/versionstring/{print $3}'` +echo "Nextclous is installed, version $current_vesion" +if [ $MAINTENANCE_LEVEL == "upgrade" ] +then + echo "Checking version from changelog page (upgrade)" + target_version=`curl -silent https://nextcloud.com/changelog/ \ + | sed 's/>/>\n/g' | awk '/^<h3 id=/{print $2}' | head -n 1 \ + | sed -e 's/id="\(.*\)">/\1/' -e 's/-/./g'` +else + echo "Checking version from install page (security)" + target_version=`curl -silent \ + 'https://nextcloud.com/install/#instructions-server' \ + | sed 's/>/>\n/g' | awk '/href=.*server\/release/{print $0}' \ + | head -n 1 | sed 's/.*nextcloud-\(.*\).zip">/\1/'` +fi + +echo "Upstream version is : $target_version" + +if [ "$current_vesion" == "$target_version" ] +then + echo "Nextcloud is already up to date" + exit 0 +fi + echo "Removing old backup" rm -rf $NEXTCLOUD_INSTALL_DIR.bak echo "backing up nextcloud"