From 010a8a0f7a138f3250b2229ab770d1e21efc8155 Mon Sep 17 00:00:00 2001 From: polytan02 Date: Sat, 7 Mar 2015 14:30:01 +0000 Subject: [PATCH] Upgrade of install/remove/upgrade scripts --- manifest.json | 11 ++++++++++- scripts/install | 20 ++++++++++---------- scripts/remove | 16 +++++++++------- scripts/upgrade | 31 ++++++++----------------------- 4 files changed, 37 insertions(+), 41 deletions(-) diff --git a/manifest.json b/manifest.json index cb9e628..0a35876 100644 --- a/manifest.json +++ b/manifest.json @@ -1,5 +1,5 @@ { - "name": "rainloop", + "name": "Rainloop", "id": "rainloop", "description": { "en": "Lightweight webmail", @@ -40,6 +40,15 @@ }, "choices": ["Yes", "No"], "default": "Yes" + }, + { + "name": "dp_pwd", + "type": "password", + "ask": { + "en": "Choose a password for rainloop MySQL database. Please note that the table and the user will be rainloop (used for carddav)", + "fr": "Choisissez un mot de passe pour la base MySQL de phpBB. Veuillez noter que la table et l'utilisateur créés seront rainloop (utilisé pour carddav)" + }, + "example": "my_strong_password" } ] } diff --git a/scripts/install b/scripts/install index 5cd4070..ff18d22 100644 --- a/scripts/install +++ b/scripts/install @@ -15,16 +15,16 @@ if [[ ! $? -eq 0 ]]; then exit 1 fi -# Generate random DES key & password -#deskey=$(dd if=/dev/urandom bs=1 count=200 2> /dev/null | tr -c -d 'A-Za-z0-9' | sed -n 's/\(.\{24\}\).*/\1/p') +# Generate random password #db_pwd=$(dd if=/dev/urandom bs=1 count=200 2> /dev/null | tr -c -d 'A-Za-z0-9' | sed -n 's/\(.\{24\}\).*/\1/p') +db_pwd=$4 # Use 'rainloop' as database name and user -#db_user=rainloop +db_user=$app # Initialize database and store mysql password for upgrade -#sudo yunohost app initdb $db_user -p $db_pwd -s $(readlink -e ../sources/SQL/mysql.initial.sql) -#sudo yunohost app setting rainloop mysqlpwd -v $db_pwd +sudo yunohost app initdb $db_user -p $db_pwd +sudo yunohost app setting rainloop mysqlpwd -v $db_pwd #mysql -u $db_user -p$db_pwd $db_user < ../sources/plugins/automatic_addressbook/SQL/mysql.initial.sql @@ -42,19 +42,19 @@ sudo chown -R www-data:www-data $final_path # Modify Nginx configuration file and copy it to Nginx conf directory sed -i "s@PATHTOCHANGE@$path@g" ../conf/nginx.conf sed -i "s@ALIASTOCHANGE@$final_path/@g" ../conf/nginx.conf -sudo cp ../conf/nginx.conf /etc/nginx/conf.d/$domain.d/rainloop.conf +sudo cp ../conf/nginx.conf /etc/nginx/conf.d/$domain.d/$app.conf -sed -i "s@NAMETOCHANGE@rainloop@g" ../conf/php-fpm.conf -finalphpconf=/etc/php5/fpm/pool.d/rainloop.conf +sed -i "s@NAMETOCHANGE@$app@g" ../conf/php-fpm.conf +finalphpconf=/etc/php5/fpm/pool.d/$app.conf sudo cp ../conf/php-fpm.conf $finalphpconf sudo chown root: $finalphpconf sudo chmod 644 $finalphpconf # Make app public if necessary -sudo yunohost app setting my_webapp is_public -v "$is_public" +sudo yunohost app setting $app is_public -v "$is_public" if [ "$is_public" = "Yes" ]; then - sudo yunohost app setting my_webapp skipped_uris -v "/" + sudo yunohost app setting $app skipped_uris -v "/" fi diff --git a/scripts/remove b/scripts/remove index ffe58d3..f5c658d 100644 --- a/scripts/remove +++ b/scripts/remove @@ -1,14 +1,16 @@ #!/bin/bash -#db_user=rainloop -#db_name=rainloop -#root_pwd=$(sudo cat /etc/yunohost/mysql) +app=rainloop + +db_user=$app +db_name=$app +root_pwd=$(sudo cat /etc/yunohost/mysql) domain=$(sudo yunohost app setting rainloop domain) -#mysql -u root -p $root_pwd -e "DROP DATABASE $db_name ; DROP USER $db_user@localhost ;" -sudo rm -rf /var/www/rainloop -sudo rm -f /etc/nginx/conf.d/$domain.d/rainloop.conf -sudo rm -f /etc/php5/fpm/pool.d/rainloop.conf +mysql -u root -p $root_pwd -e "DROP DATABASE $db_name ; DROP USER $db_user@localhost ;" +sudo rm -rf /var/www/$app +sudo rm -f /etc/nginx/conf.d/$domain.d/$app.conf +sudo rm -f /etc/php5/fpm/pool.d/$app.conf sudo service php5-fpm restart sudo service nginx reload diff --git a/scripts/upgrade b/scripts/upgrade index 78fd988..300cb42 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -6,45 +6,30 @@ app=rainloop domain=$(sudo yunohost app setting $app domain) path=$(sudo yunohost app setting $app path) is_public=$(sudo yunohost app setting $app is_public) - - -# Check domain/path availability -#sudo yunohost app checkurl $domain$path -a rainloop -#if [[ ! $? -eq 0 ]]; then -# exit 1 -#fi - -# Generate random DES key & password -#deskey=$(dd if=/dev/urandom bs=1 count=200 2> /dev/null | tr -c -d 'A-Za-z0-9' | sed -n 's/\(.\{24\}\).*/\1/p') -#db_pwd=$(dd if=/dev/urandom bs=1 count=200 2> /dev/null | tr -c -d 'A-Za-z0-9' | sed -n 's/\(.\{24\}\).*/\1/p') - -# Use 'rainloop' as database name and user -#db_user=rainloop +dp_pwd=$(sudo yunohost app setting rainloop mysqlpwd) +db_user=$app # Initialize database and store mysql password for upgrade -#sudo yunohost app initdb $db_user -p $db_pwd -s $(readlink -e ../sources/SQL/mysql.initial.sql) -#sudo yunohost app setting rainloop mysqlpwd -v $db_pwd - -#mysql -u $db_user -p$db_pwd $db_user < ../sources/plugins/automatic_addressbook/SQL/mysql.initial.sql +root_pwd=$(sudo cat /etc/yunohost/mysql) +mysql -u root -p$root_pwd -e "DROP DATABASE $db_name ; DROP USER $db_user@localhost ;" +sudo yunohost app initdb $db_user -p $db_pwd # Copy files to the right place final_path=/var/www/$app/rainloop/v/ sudo rm -rf $final_path/* -#sudo mkdir -p $final_path sudo cp -a ../sources/rainloop/v/* $final_path # Set permissions to rainloop directory -# sudo mkdir -p $final_path/logs -sudo chown -R www-data:www-data $final_path +sudo chown -R www-data:www-data /var/www/$app # Modify Nginx configuration file and copy it to Nginx conf directory sed -i "s@PATHTOCHANGE@$path@g" ../conf/nginx.conf sed -i "s@ALIASTOCHANGE@$final_path/@g" ../conf/nginx.conf -sudo cp ../conf/nginx.conf /etc/nginx/conf.d/$domain.d/rainloop.conf +sudo cp ../conf/nginx.conf /etc/nginx/conf.d/$domain.d/$app.conf sed -i "s@NAMETOCHANGE@rainloop@g" ../conf/php-fpm.conf -finalphpconf=/etc/php5/fpm/pool.d/rainloop.conf +finalphpconf=/etc/php5/fpm/pool.d/$app.conf sudo cp ../conf/php-fpm.conf $finalphpconf sudo chown root: $finalphpconf sudo chmod 644 $finalphpconf