1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/z-push_ynh.git synced 2024-09-03 18:05:58 +02:00

Places STATE_DIR in /home/yunohost.app instead of /vaer/www/z-push

The point is to keep the states in between upgrades to avoid full resync of devices in between upgrades of z-push sources
This commit is contained in:
polytan02 2017-02-10 15:24:02 +00:00
parent 90889ba3ac
commit 4c6c5dbe68
6 changed files with 49 additions and 3 deletions

View file

@ -61,7 +61,7 @@
* State migration script is available, more informations: https://wiki.z-hub.io/x/xIAa
*/
define('STATE_MACHINE', 'FILE');
define('STATE_DIR', 'ALIASTOCHANGE/');
define('STATE_DIR', 'STATEDIRTOCHANGE/');
/**********************************************************************************
* IPC - InterProcessCommunication

View file

@ -19,6 +19,7 @@ source /usr/share/yunohost/helpers
path=$(ynh_app_setting_get $app path)
domain=$(ynh_app_setting_get $app domain)
final_path=$(ynh_app_setting_get $app final_path)
statedir=$(ynh_app_setting_get $app statedir)
final_logpath=$(ynh_app_setting_get $app final_logpath)
final_nginxconf=$(ynh_app_setting_get $app final_nginxconf)
final_phpconf=$(ynh_app_setting_get $app final_phpconf)
@ -27,6 +28,9 @@ final_phpconf=$(ynh_app_setting_get $app final_phpconf)
# Note: the last argument is where to save this path, see the restore script.
ynh_backup "$final_path" "sources"
# Backup statedir
ynh_backup "$statedir" "statedir"
# Backup logs
ynh_backup "$final_logpath" "logs"
ynh_backup "/etc/logrotate.d/$app" "logrotate"

View file

@ -79,11 +79,23 @@ CHECK_FINALPATH () { # Vérifie que le dossier de destination n'est pas déj
CHECK_FINALPATH
statedir="/home/yunohost.app/$app"
CHECK_STATEDIRPATH () { # Vérifie que le dossier de destination n'est pas déjà utilisé.
if [ -e "$statedir" ]
then
echo "This path already contains a folder" >&2
false
fi
}
CHECK_STATEDIRPATH
# Define variables and Save app settings
ynh_app_setting_set "$app" domain "$domain"
ynh_app_setting_set "$app" final_path "$final_path"
ynh_app_setting_set "$app" statedir "$statedir"
final_logpath="/var/log/$app"
ynh_app_setting_set "$app" final_logpath "$final_logpath"
@ -106,10 +118,15 @@ sudo cp -R ../sources/$SFILE/* $final_path
# Configuration
sed -i "s^define('TIMEZONE', .*^define('TIMEZONE', '$(cat /etc/timezone)');^" ../conf/config.php
sed -i "s@ALIASTOCHANGE@$final_path@g" ../conf/config.php
sed -i "s@LOGTOCHANGE@$final_logpath@g" ../conf/config.php
sed -i "s@LOGTOCHANGE@$final_logpath@g" ../conf/logrotate
# Storage of state_dir in /home/yunohost.app
# This contains the sync status in between device and z-push
sed -i "s@STATEDIRTOCHANGE@$statedir@g" ../conf/config.php
sudo mkdir -p $statedir
sudo chown -R www:data-www-data $statedir
# Enable caldav carddav support
if sudo yunohost app list --installed -f baikal | grep -q id ; then
echo "Detected Baikal"

View file

@ -9,6 +9,7 @@ domain=$(ynh_app_setting_get $app domain)
# Cleaning
sudo rm -rf /var/www/$app
sudo rm -rf /home/yunohost.app/$app
sudo rm -rf /var/log/$app
sudo rm -f /etc/nginx/conf.d/$domain.d/$app.conf
sudo rm -f /etc/php5/fpm/pool.d/$app.conf

View file

@ -9,6 +9,7 @@ source /usr/share/yunohost/helpers
path=$(ynh_app_setting_get $app path)
domain=$(ynh_app_setting_get $app domain)
final_path=$(ynh_app_setting_get $app final_path)
statedir=$(ynh_app_setting_get $app statedir)
final_logpath=$(ynh_app_setting_get $app final_logpath)
final_nginxconf=$(ynh_app_setting_get $app final_nginxconf)
final_phpconf=$(ynh_app_setting_get $app final_phpconf)
@ -18,6 +19,11 @@ sudo mkdir -p $final_path
sudo cp -a ./sources/* $final_path/
sudo chown -R www-data: $final_path
# Restore statedir
sudo mkdir -p $statedir
sudo cp -a ./statedir/* $statedir/
sudo chown -R www-data:www-data $statedir
# Restore logs, data & permissions
sudo mkdir -p $final_logpath
sudo cp -a ./logs/* $final_logpath/

View file

@ -8,6 +8,7 @@ app=$YNH_APP_INSTANCE_NAME
domain=$(ynh_app_setting_get $app domain)
path=$(ynh_app_setting_get $app path)
final_path=$(ynh_app_setting_get $app final_path)
statedir=$(ynh_app_setting_get $app statedir)
final_logpath=$(ynh_app_setting_get $app final_logpath)
final_nginxconf=$(ynh_app_setting_get $app final_nginxconf)
final_phpconf=$(ynh_app_setting_get $app final_phpconf)
@ -21,6 +22,14 @@ else
echo "${final_path} exists, we don't create it."
fi
if [ -z "$statedir" ];
then
statedir="/home/yunohost.app/$app"
ynh_app_setting_set "$app" statedir "$statedir"
else
echo "${statedir} exists, we don't create it."
fi
if [ -z "$final_logpath" ];
then
final_logpath="/var/log/$app"
@ -68,10 +77,16 @@ sudo cp -R ../sources/$SFILE/* $final_path
# Configuration
sed -i "s^define('TIMEZONE', .*^define('TIMEZONE', '$(cat /etc/timezone)');^" ../conf/config.php
sed -i "s@ALIASTOCHANGE@$final_path@g" ../conf/config.php
sed -i "s@LOGTOCHANGE@$final_logpath@g" ../conf/config.php
sed -i "s@LOGTOCHANGE@$final_logpath@g" ../conf/logrotate
# Storage of state_dir in /home/yunohost.app
# This contains the sync status in between device and z-push
sed -i "s@STATEDIRTOCHANGE@$statedir@g" ../conf/config.php
sudo mkdir -p $statedir
sudo chown -R www:data-www-data $statedir
# Note : there is a "fixstates actions done after the sources have been installed and configured
# Enable caldav carddav support
if sudo yunohost app list --installed -f baikal | grep -q id ; then
echo "Detected Baikal"
@ -133,6 +148,9 @@ sudo cp ../conf/php-fpm.conf $final_phpconf
sudo chown root: $final_phpconf
sudo chmod 644 $final_phpconf
# Fixstates to avoid full resync of devices after evrsion upgrades
sudo $final_path/z-push-admin.php -a fixstates
# Enable api for client and make the app public
ynh_app_setting_set $app skipped_uris "/"