## --- ownCloud TEST O.OPEN --
## -
VERSION=9.1.5

THIRD_PARTY_APPS="calendar contacts documents notes delete_confirmation"

HTTP_USER=www-data
HTTP_GROUP=www-data

SRC_BASE_DIR=/usr/local/src/owncloud

WEB_BASE_DIR=/var/www/owncloud-test.oopen.de

DATABASE=ownCloud_test
#DB_USER=backup
#DB_PASSWORD=backup
MYSQL_CREDENTIALS="--login-path=local"
## -
## --- Ende ownCloud TEST O.OPEN --


## --- ownCloud RLS --
## -
VERSION=9.1.5

THIRD_PARTY_APPS="calendar contacts documents delete_confirmation activity gallery notes"

HTTP_USER=www-data
HTTP_GROUP=www-data

SRC_BASE_DIR=/usr/local/src/owncloud

WEB_BASE_DIR=/var/www/cloud-rls.oopen.de

DATABASE=cloud_rls
#DB_USER=backup
#DB_PASSWORD=backup
MYSQL_CREDENTIALS="--login-path=local"
## -
## --- Ende ownCloud RLS --


## --- ownCloud O.OPEN --
## -
VERSION=9.1.5

THIRD_PARTY_APPS="calendar contacts documents notes delete_confirmation gallery activity"

HTTP_USER=www-data
HTTP_GROUP=www-data

SRC_BASE_DIR=/usr/local/src/owncloud

WEB_BASE_DIR=/var/www/owncloud.oopen.de

DATABASE=ownCloud
#DB_USER=backup
#DB_PASSWORD=backup
MYSQL_CREDENTIALS="--login-path=local"
## -
## --- Ende ownCloud O.OPEN --


## --- ownCloud cloud-giz-test.warenform.de --
## -
VERSION=9.1.5

THIRD_PARTY_APPS="calendar contacts documents delete_confirmation gallery activity notes"

HTTP_USER=www-data
HTTP_GROUP=www-data

SRC_BASE_DIR=/usr/local/src/owncloud

WEB_BASE_DIR=/var/www/cloud-giz-test.warenform.de

DATABASE=cloud_giz_test
#DB_USER=backup
#DB_PASSWORD=backup
MYSQL_CREDENTIALS="--login-path=local"
## -
## --- Ende ownCloud cloud-giz-test.warenform.de --


## --- ownCloud cloud.skills-green-economy.org --
## -
VERSION=9.1.5

THIRD_PARTY_APPS="calendar contacts documents delete_confirmation gallery activity notes"

HTTP_USER=www-data
HTTP_GROUP=www-data

SRC_BASE_DIR=/usr/local/src/owncloud

WEB_BASE_DIR=/var/www/cloud.skills-green-economy.org

DATABASE=cloud_giz
#DB_USER=backup
#DB_PASSWORD=backup
MYSQL_CREDENTIALS="--login-path=local"
## -
## --- Ende cloud.skills-green-economy.org --


## -----------------------------

CURRENT_INSTALL_DIR=`realpath ${WEB_BASE_DIR}/owncloud`
CURRENT_DATA_DIR=`realpath ${WEB_BASE_DIR}/data`
PRIOR_VERSION=`basename $CURRENT_INSTALL_DIR | cut -d"-" -f2`

DATA_DIR=${WEB_BASE_DIR}/data-${VERSION}
INSTALL_DIR=${WEB_BASE_DIR}/owncloud-${VERSION}

mkdir -p ${SRC_BASE_DIR}

## - downloud owncloud source
## -
## -    owncloud-5.0.12.tar.bz2
## -
cd $SRC_BASE_DIR
if [ -f "${SRC_BASE_DIR}/owncloud-${VERSION}.tar.bz2" ]; then
   rm ${SRC_BASE_DIR}/owncloud-${VERSION}.tar.bz2
fi
wget -4 https://download.owncloud.org/community/owncloud-${VERSION}.tar.bz2


## - Entpacken
## -
if [ -d "${SRC_BASE_DIR}/owncloud" ]; then
   rm -rf ${SRC_BASE_DIR}/owncloud
fi
bunzip2 < owncloud-${VERSION}.tar.bz2 | tar -xf -


cd $WEB_BASE_DIR


## - Stop Cronjob: 
## -    */5 * * * * /root/bin/check_webservice_load.sh

## - Stop apache webservice
## -
/etc/init.d/apache2 stop
## - Alternativly enable maintenance mode
## -
#su -c "/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/occ maintenance:mode --on" -s /bin/bash $HTTP_USER


## - Backup Database
## -
mysqldump $MYSQL_CREDENTIALS --opt $DATABASE > \
   ${WEB_BASE_DIR}/${DATABASE}-v${PRIOR_VERSION}.`date +"%Y-%m-%d-%H%M"`.sql


## - ## - Deactivate third party apps
## - ## -
## - for _app in $THIRD_PARTY_APPS ; do
## -    #su -c"/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/occ app:disable $_app" -s /bin/bash $HTTP_USER
## -    su -c"/usr/local/php/bin/php ${WEB_BASE_DIR}/owncloud/occ app:disable $_app" -s /bin/bash $HTTP_USER
## - done
for _app in $THIRD_PARTY_APPS ; do
   #su -c"/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/occ app:disable $_app" -s /bin/bash $HTTP_USER
   su -c"/usr/local/php/bin/php ${WEB_BASE_DIR}/owncloud/occ app:disable $_app" -s /bin/bash $HTTP_USER
done


## - Erstelle Web-Verzeichnis für die neue OwnCloud Version
## -
mkdir ${WEB_BASE_DIR}/owncloud-${VERSION}

## - Kopiere Verzeichnis "config" in das neue Installationsverzeichnis
## -
cp -a ${CURRENT_INSTALL_DIR}/config $INSTALL_DIR/

## - Synchronisiere neues Installationsverzeichnis mit 
## - den extrahierten Dateien 
## -
rsync -a ${SRC_BASE_DIR}/owncloud/ ${INSTALL_DIR}/

touch -t `date +%Y%m%d%H%M.%S` ${INSTALL_DIR}


## - Kopiere Daten Verzeichnis (hardlinks - harte Dateiverweise)
## -
cp -al ${CURRENT_DATA_DIR} $DATA_DIR


## - Set Permissions
## -
find $INSTALL_DIR -type f -print0 | xargs -0 chmod 0640
find $INSTALL_DIR -type d -print0 | xargs -0 chmod 0750

find ${DATA_DIR}/ -type f -print0 | xargs -0 chmod 0640
find ${DATA_DIR}/ -type d -print0 | xargs -0 chmod 0750

chown -R root:${HTTP_GROUP} ${INSTALL_DIR}/

chown -R ${HTTP_USER}:${HTTP_GROUP} ${INSTALL_DIR}/apps
chown -R ${HTTP_USER}:${HTTP_GROUP} ${INSTALL_DIR}/config
chown -R ${HTTP_USER}:${HTTP_GROUP} ${INSTALL_DIR}/themes

chown -R ${HTTP_USER}:${HTTP_GROUP} ${DATA_DIR}

#chown -R root:${HTTP_GROUP} ${INSTALL_DIR}/.htaccess
#chown -R root:${HTTP_GROUP} ${DATA_DIR}/.htaccess
chown -R ${HTTP_USER}:${HTTP_GROUP} ${INSTALL_DIR}/.htaccess
chown -R ${HTTP_USER}:${HTTP_GROUP} ${DATA_DIR}/.htaccess

mkdir -p ${WEB_BASE_DIR}/sessions
chown root:${HTTP_GROUP} ${WEB_BASE_DIR}/sessions
chmod 2775 ${WEB_BASE_DIR}/sessions

mkdir -p ${WEB_BASE_DIR}/tmp
chown root:${HTTP_GROUP} ${WEB_BASE_DIR}/tmp
chmod 2775 ${WEB_BASE_DIR}/tmp


#find ${DATA_DIR} -maxdepth 2 -mindepth 1 -type d -name files_encryption -exec rm -rf {} \;
#find ${DATA_DIR} -maxdepth 2 -mindepth 1 -type d -name lucene_index -exec rm -rf {} \;



## - Setze Symlink data verzeichnis
## -
rm ${WEB_BASE_DIR}/data
ln -s data-${VERSION} ${WEB_BASE_DIR}/data


## - Setze symlink (documentroot) auf das neue Installationsverzeichnis
## -
rm ${WEB_BASE_DIR}/owncloud
ln -s owncloud-${VERSION} ${WEB_BASE_DIR}/owncloud

## - Upgrade
## -
## - Note!!
## - this command probably disables 3rd-party aps
## -

#su -c "/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/occ maintenance:mode --off" -s /bin/bash $HTTP_USER

#su -c"/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/occ upgrade" -s /bin/bash $HTTP_USER
su -c"/usr/local/php/bin/php ${WEB_BASE_DIR}/owncloud/occ upgrade" -s /bin/bash $HTTP_USER


# =====
# - Upgrade from 9.1.5 to 9.1.6
# -
# - Calendar will fail
# -
# =====

See: https://github.com/owncloud/calendar/issues/800

Add line
   'appstoreurl' => 'https://marketplace.owncloud.com/api/v0',
to config.php

delete Calendar 1.4.1
add calendar 1.4.2



## - Start Apache Webserver
## -
/etc/init.d/apache2 start

## - Start Cronjob: 
## -    */5 * * * * /root/bin/check_webservice_load.sh


## - ## - Enable third party apps
## - ## -
## - for _app in $THIRD_PARTY_APPS ; do
## -    su -c"/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/occ app:enable $_app" -s /bin/bash $HTTP_USER
## - done
for _app in $THIRD_PARTY_APPS ; do
   su -c"/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/occ app:enable $_app" -s /bin/bash $HTTP_USER
done


## - Check Application "Notes"
## -
## - If not working as exspected, install app from git repositors
## -
## -    cd ${WEB_BASE_DIR}/htdocs/apps
## -    su $HTTP_USER -c "/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/occ maintenance:mode --on"
## -    mv notes notes.ORIG
## -    git clone https://github.com/owncloud/notes.git
## -    su $HTTP_USER -c "/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/occ maintenance:mode --off"
## -
## - Upgrade from git-repository:
## -    cd ${WEB_BASE_DIR}/htdocs/apps
## -    cd notes
## -    git pull --rebase origin master
## -

cd ${WEB_BASE_DIR}/htdocs/apps
su -c "/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/occ maintenance:mode --on" -s /bin/bash $HTTP_USER
mv notes notes.ORIG
git clone https://github.com/owncloud/notes.git
su -c "/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/occ maintenance:mode --off" -s /bin/bash $HTTP_USER


------------------------------------------------------------------------

https://doc.owncloud.org/server/8.0/admin_manual/maintenance/upgrade.html

while IFS= read -r -d '' n; do
   #if [[ "$n" == "mb" ]]; then
   #   continue
   #fi
   su -c "/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/console.php files:scan --path `basename $n`" -s /bin/bash $HTTP_USER
done < <(find $WEB_BASE_DIR/data/ -mindepth 1 -maxdepth 1 -type d -print0)

su -c "/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/console.php files:scan --all" -s /bin/bash $HTTP_USER
su -c "/usr/local/php/bin/php ${WEB_BASE_DIR}/htdocs/occ maintenance:repair" -s /bin/bash $HTTP_USER
