mirror of
https://github.com/YunoHost-Apps/webtrees_ynh.git
synced 2024-09-03 18:26:37 +02:00
Improved install and remove script
This commit is contained in:
parent
8cdc4f41b0
commit
d13ce02fb0
9 changed files with 198 additions and 261 deletions
6
conf/app.src
Normal file
6
conf/app.src
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
SOURCE_URL=https://launchpad.net/webtrees/1.7/1.7.9/+download/webtrees-1.7.9.zip
|
||||||
|
SOURCE_SUM=0f51ab5af9414b981ade19b582a7dd06
|
||||||
|
SOURCE_SUM_PRG=md5sum
|
||||||
|
SOURCE_FORMAT=zip
|
||||||
|
SOURCE_IN_SUBDIR=true
|
||||||
|
SOURCE_FILENAME=
|
|
@ -1,7 +1,7 @@
|
||||||
location YNH_WWW_PATH {
|
location __PATH__ {
|
||||||
|
|
||||||
# Path to source
|
# Path to source
|
||||||
alias YNH_WWW_ALIAS ;
|
alias __FINALPATH__/ ;
|
||||||
|
|
||||||
# Example PHP configuration (remove if not used)
|
# Example PHP configuration (remove if not used)
|
||||||
index index.php;
|
index index.php;
|
||||||
|
|
|
@ -1,180 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
ynh_version="2.4"
|
|
||||||
|
|
||||||
YNH_VERSION () { # Display number version of the YunoHost moulinette
|
|
||||||
ynh_version=$(sudo yunohost -v | grep "moulinette:" | cut -d' ' -f2 | cut -d'.' -f1,2)
|
|
||||||
}
|
|
||||||
|
|
||||||
CHECK_VAR () { # Check variable is not empty
|
|
||||||
# $1 = Checking variable
|
|
||||||
# $2 = Text to display on error
|
|
||||||
test -n "$1" || (echo "$2" >&2 && false)
|
|
||||||
}
|
|
||||||
|
|
||||||
EXIT_PROPERLY () { # Causes the script to stop in the event of an error. And clean the residue.
|
|
||||||
trap '' ERR
|
|
||||||
echo -e "\e[91m \e[1m" # Shell in light red bold
|
|
||||||
echo -e "!!\n $app install's script has encountered an error. Installation was cancelled.\n!!" >&2
|
|
||||||
|
|
||||||
if type -t CLEAN_SETUP > /dev/null; then # Checks the existence of the function before executing it.
|
|
||||||
CLEAN_SETUP # Call the specific cleanup function of the install script.
|
|
||||||
fi
|
|
||||||
|
|
||||||
sudo sed -i "\@\"$domain$path/\":@d" /etc/ssowat/conf.json
|
|
||||||
|
|
||||||
if [ "$ynh_version" = "2.2" ]; then
|
|
||||||
/bin/bash $script_dir/remove # Call the remove script. In 2.2, this behavior is not automatic.
|
|
||||||
fi
|
|
||||||
|
|
||||||
ynh_die
|
|
||||||
}
|
|
||||||
|
|
||||||
TRAP_ON () { # Activate signal capture
|
|
||||||
trap EXIT_PROPERLY ERR # Capturing exit signals on error
|
|
||||||
}
|
|
||||||
|
|
||||||
TRAP_OFF () { # Ignoring signal capture until TRAP_ON
|
|
||||||
trap '' ERR # Ignoring exit signals
|
|
||||||
}
|
|
||||||
|
|
||||||
CHECK_USER () { # Check the validity of the user admin
|
|
||||||
# $1 = User admin variable
|
|
||||||
ynh_user_exists "$1" || (echo "Wrong admin" >&2 && false)
|
|
||||||
}
|
|
||||||
|
|
||||||
CHECK_PATH () { # Checks / at the beginning of the path. And his absence at the end.
|
|
||||||
if [ "${path:0:1}" != "/" ]; then # If the first character is not /
|
|
||||||
path="/$path" # Add / at the beginning of path
|
|
||||||
fi
|
|
||||||
if [ "${path:${#path}-1}" == "/" ] && [ ${#path} -gt 1 ]; then # If the last character is a / and it is not the only character.
|
|
||||||
path="${path:0:${#path}-1}" # Delete last character
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
CHECK_DOMAINPATH () { # Checks the availability of the path and domain.
|
|
||||||
sudo yunohost app checkurl $domain$path -a $app
|
|
||||||
}
|
|
||||||
|
|
||||||
CHECK_FINALPATH () { # Checks that the destination folder is not already in use.
|
|
||||||
final_path=/var/www/$app
|
|
||||||
if [ -e "$final_path" ]
|
|
||||||
then
|
|
||||||
echo "This path already contains a folder" >&2
|
|
||||||
false
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
SETUP_SOURCE () { # Download source, decompress and copu into $final_path
|
|
||||||
src=$(cat ../sources/source_md5 | awk -F' ' {'print $2'})
|
|
||||||
sudo wget -nv -i ../sources/source_url -O $src
|
|
||||||
# Checks the checksum of the downloaded source.
|
|
||||||
# md5sum -c ../sources/source_md5 --status || ynh_die "Corrupt source"
|
|
||||||
# Decompress source
|
|
||||||
if [ "$(echo ${src##*.})" == "tgz" ]; then
|
|
||||||
tar -x -f $src
|
|
||||||
elif [ "$(echo ${src##*.})" == "zip" ]; then
|
|
||||||
unzip -q $src
|
|
||||||
else
|
|
||||||
false # Unsupported archive format.
|
|
||||||
fi
|
|
||||||
# Copy file source
|
|
||||||
sudo cp -a $(cat ../sources/source_dir)/. "$final_path"
|
|
||||||
# Copy additional file and modified
|
|
||||||
if test -e "../sources/ajouts"; then
|
|
||||||
sudo cp -a ../sources/ajouts/. "$final_path"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
POOL_FPM () { # Create the php-fpm pool configuration file and configure it.
|
|
||||||
sed -i "s@__NAMETOCHANGE__@$app@g" ../conf/php-fpm.conf
|
|
||||||
sed -i "s@__FINALPATH__@$final_path@g" ../conf/php-fpm.conf
|
|
||||||
finalphpconf=/etc/php5/fpm/pool.d/$app.conf
|
|
||||||
sudo cp ../conf/php-fpm.conf $finalphpconf
|
|
||||||
sudo chown root: $finalphpconf
|
|
||||||
finalphpini=/etc/php5/fpm/conf.d/20-$app.ini
|
|
||||||
sudo cp ../conf/php-fpm.ini $finalphpini
|
|
||||||
sudo chown root: $finalphpini
|
|
||||||
sudo systemctl reload php5-fpm
|
|
||||||
}
|
|
||||||
|
|
||||||
STORE_MD5_CONFIG () { # Saves the checksum of the config file
|
|
||||||
# $1 = Name of the conf file for storage in settings.yml
|
|
||||||
# $2 = Full name and path of the conf file.
|
|
||||||
ynh_app_setting_set $app $1_file_md5 $(sudo md5sum "$2" | cut -d' ' -f1)
|
|
||||||
}
|
|
||||||
|
|
||||||
CHECK_MD5_CONFIG () { # Created a backup of the config file if it was changed.
|
|
||||||
# $1 = Name of the conf file for storage in settings.yml
|
|
||||||
# $2 = Full name and path of the conf file.onf.
|
|
||||||
if [ "$(ynh_app_setting_get $app $1_file_md5)" != $(sudo md5sum "$2" | cut -d' ' -f1) ]; then
|
|
||||||
sudo cp -a "$2" "$2.backup.$(date '+%d.%m.%y_%Hh%M,%Ss')" # Si le fichier de config a été modifié, créer un backup.
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
FIND_PORT () { # Search free port
|
|
||||||
# $1 = Port number to start the search.
|
|
||||||
port=$1
|
|
||||||
while ! sudo yunohost app checkport $port ; do
|
|
||||||
port=$((port+1))
|
|
||||||
done
|
|
||||||
CHECK_VAR "$port" "port empty"
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
### REMOVE SCRIPT
|
|
||||||
|
|
||||||
REMOVE_NGINX_CONF () { # Delete nginx configuration
|
|
||||||
if [ -e "/etc/nginx/conf.d/$domain.d/$app.conf" ]; then
|
|
||||||
echo "Delete nginx config"
|
|
||||||
sudo rm "/etc/nginx/conf.d/$domain.d/$app.conf"
|
|
||||||
sudo systemctl reload nginx
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
REMOVE_FPM_CONF () { # Delete pool php-fpm configuration
|
|
||||||
if [ -e "/etc/php5/fpm/pool.d/$app.conf" ]; then # Delete fpm config
|
|
||||||
echo "Delete fpm config"
|
|
||||||
sudo rm "/etc/php5/fpm/pool.d/$app.conf"
|
|
||||||
fi
|
|
||||||
if [ -e "/etc/php5/fpm/conf.d/20-$app.ini" ]; then # Delete php config
|
|
||||||
echo "Delete php config"
|
|
||||||
sudo rm "/etc/php5/fpm/conf.d/20-$app.ini"
|
|
||||||
fi
|
|
||||||
sudo systemctl reload php5-fpm
|
|
||||||
}
|
|
||||||
|
|
||||||
REMOVE_LOGROTATE_CONF () { # Delete logrotate configuration
|
|
||||||
if [ -e "/etc/logrotate.d/$app" ]; then
|
|
||||||
echo "Delete logrotate config"
|
|
||||||
sudo rm "/etc/logrotate.d/$app"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
SECURE_REMOVE () { # Deleting a folder with variable verification
|
|
||||||
chaine="$1" # The argument must be given between simple quotes '', to avoid interpreting the variables.
|
|
||||||
no_var=0
|
|
||||||
while (echo "$chaine" | grep -q '\$') # Loop as long as there are $ in the string
|
|
||||||
do
|
|
||||||
no_var=1
|
|
||||||
global_var=$(echo "$chaine" | cut -d '$' -f 2) # Isole the first variable found.
|
|
||||||
only_var=\$$(expr "$global_var" : '\([A-Za-z0-9_]*\)') # Isole completely the variable by adding the $ at the beginning and keeping only the name of the variable. Mostly gets rid of / and a possible path behind.
|
|
||||||
real_var=$(eval "echo ${only_var}") # `eval "echo ${var}` Allows to interpret a variable contained in a variable.
|
|
||||||
if test -z "$real_var" || [ "$real_var" = "/" ]; then
|
|
||||||
echo "Variable $only_var is empty, suppression of $chaine cancelled." >&2
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
chaine=$(echo "$chaine" | sed "s@$only_var@$real_var@") # Replaces variable with its value in the string.
|
|
||||||
done
|
|
||||||
if [ "$no_var" -eq 1 ]
|
|
||||||
then
|
|
||||||
if [ -e "$chaine" ]; then
|
|
||||||
echo "Delete directory $chaine"
|
|
||||||
sudo rm -r "$chaine"
|
|
||||||
fi
|
|
||||||
return 0
|
|
||||||
else
|
|
||||||
echo "No detected variable." >&2
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
}
|
|
112
scripts/_common.sh
Normal file
112
scripts/_common.sh
Normal file
|
@ -0,0 +1,112 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
# YUNOHOST 2.7 FORTHCOMING HELPERS
|
||||||
|
# =============================================================================
|
||||||
|
|
||||||
|
# Create a dedicated nginx config
|
||||||
|
#
|
||||||
|
# usage: ynh_add_nginx_config
|
||||||
|
ynh_add_nginx_config () {
|
||||||
|
finalnginxconf="/etc/nginx/conf.d/$domain.d/$app.conf"
|
||||||
|
ynh_backup_if_checksum_is_different "$finalnginxconf"
|
||||||
|
sudo cp ../conf/nginx.conf "$finalnginxconf"
|
||||||
|
|
||||||
|
# To avoid a break by set -u, use a void substitution ${var:-}. If the variable is not set, it's simply set with an empty variable.
|
||||||
|
# Substitute in a nginx config file only if the variable is not empty
|
||||||
|
if test -n "${path_url:-}"; then
|
||||||
|
ynh_replace_string "__PATH__" "$path_url" "$finalnginxconf"
|
||||||
|
fi
|
||||||
|
if test -n "${domain:-}"; then
|
||||||
|
ynh_replace_string "__DOMAIN__" "$domain" "$finalnginxconf"
|
||||||
|
fi
|
||||||
|
if test -n "${port:-}"; then
|
||||||
|
ynh_replace_string "__PORT__" "$port" "$finalnginxconf"
|
||||||
|
fi
|
||||||
|
if test -n "${app:-}"; then
|
||||||
|
ynh_replace_string "__NAME__" "$app" "$finalnginxconf"
|
||||||
|
fi
|
||||||
|
if test -n "${final_path:-}"; then
|
||||||
|
ynh_replace_string "__FINALPATH__" "$final_path" "$finalnginxconf"
|
||||||
|
fi
|
||||||
|
ynh_store_file_checksum "$finalnginxconf"
|
||||||
|
|
||||||
|
sudo systemctl reload nginx
|
||||||
|
}
|
||||||
|
|
||||||
|
# Remove the dedicated nginx config
|
||||||
|
#
|
||||||
|
# usage: ynh_remove_nginx_config
|
||||||
|
ynh_remove_nginx_config () {
|
||||||
|
ynh_secure_remove "/etc/nginx/conf.d/$domain.d/$app.conf"
|
||||||
|
sudo systemctl reload nginx
|
||||||
|
}
|
||||||
|
|
||||||
|
# Create a dedicated php-fpm config
|
||||||
|
#
|
||||||
|
# usage: ynh_add_fpm_config
|
||||||
|
ynh_add_fpm_config () {
|
||||||
|
finalphpconf="/etc/php5/fpm/pool.d/$app.conf"
|
||||||
|
ynh_backup_if_checksum_is_different "$finalphpconf"
|
||||||
|
sudo cp ../conf/php-fpm.conf "$finalphpconf"
|
||||||
|
ynh_replace_string "__NAMETOCHANGE__" "$app" "$finalphpconf"
|
||||||
|
ynh_replace_string "__FINALPATH__" "$final_path" "$finalphpconf"
|
||||||
|
ynh_replace_string "__USER__" "$app" "$finalphpconf"
|
||||||
|
sudo chown root: "$finalphpconf"
|
||||||
|
ynh_store_file_checksum "$finalphpconf"
|
||||||
|
|
||||||
|
if [ -e "../conf/php-fpm.ini" ]
|
||||||
|
then
|
||||||
|
finalphpini="/etc/php5/fpm/conf.d/20-$app.ini"
|
||||||
|
ynh_backup_if_checksum_is_different "$finalphpini"
|
||||||
|
sudo cp ../conf/php-fpm.ini "$finalphpini"
|
||||||
|
sudo chown root: "$finalphpini"
|
||||||
|
ynh_store_file_checksum "$finalphpini"
|
||||||
|
fi
|
||||||
|
|
||||||
|
sudo systemctl reload php5-fpm
|
||||||
|
}
|
||||||
|
|
||||||
|
# Remove the dedicated php-fpm config
|
||||||
|
#
|
||||||
|
# usage: ynh_remove_fpm_config
|
||||||
|
ynh_remove_fpm_config () {
|
||||||
|
ynh_secure_remove "/etc/php5/fpm/pool.d/$app.conf"
|
||||||
|
ynh_secure_remove "/etc/php5/fpm/conf.d/20-$app.ini" 2>&1
|
||||||
|
sudo systemctl reload php5-fpm
|
||||||
|
}
|
||||||
|
|
||||||
|
# Create a dedicated systemd config
|
||||||
|
#
|
||||||
|
# usage: ynh_add_systemd_config
|
||||||
|
ynh_add_systemd_config () {
|
||||||
|
finalsystemdconf="/etc/systemd/system/$app.service"
|
||||||
|
ynh_backup_if_checksum_is_different "$finalsystemdconf"
|
||||||
|
sudo cp ../conf/systemd.service "$finalsystemdconf"
|
||||||
|
|
||||||
|
# To avoid a break by set -u, use a void substitution ${var:-}. If the variable is not set, it's simply set with an empty variable.
|
||||||
|
# Substitute in a nginx config file only if the variable is not empty
|
||||||
|
if test -n "${final_path:-}"; then
|
||||||
|
ynh_replace_string "__FINALPATH__" "$final_path" "$finalsystemdconf"
|
||||||
|
fi
|
||||||
|
if test -n "${app:-}"; then
|
||||||
|
ynh_replace_string "__APP__" "$app" "$finalsystemdconf"
|
||||||
|
fi
|
||||||
|
ynh_store_file_checksum "$finalsystemdconf"
|
||||||
|
|
||||||
|
sudo chown root: "$finalsystemdconf"
|
||||||
|
sudo systemctl enable $app
|
||||||
|
sudo systemctl daemon-reload
|
||||||
|
}
|
||||||
|
|
||||||
|
# Remove the dedicated systemd config
|
||||||
|
#
|
||||||
|
# usage: ynh_remove_systemd_config
|
||||||
|
ynh_remove_systemd_config () {
|
||||||
|
finalsystemdconf="/etc/systemd/system/$app.service"
|
||||||
|
if [ -e "$finalsystemdconf" ]; then
|
||||||
|
sudo systemctl stop $app
|
||||||
|
sudo systemctl disable $app
|
||||||
|
ynh_secure_remove "$finalsystemdconf"
|
||||||
|
fi
|
||||||
|
}
|
107
scripts/install
107
scripts/install
|
@ -1,50 +1,56 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# Exit on command errors and treat unset variables as an error
|
#=================================================
|
||||||
set -eu
|
# GENERIC START
|
||||||
|
#=================================================
|
||||||
|
# IMPORT GENERIC HELPERS
|
||||||
|
#=================================================
|
||||||
|
|
||||||
# This is a multi-instance app, meaning it can be installed several times independently
|
source _common.sh
|
||||||
# The id of the app as stated in the manifest is available as $YNH_APP_ID
|
|
||||||
# The instance number is available as $YNH_APP_INSTANCE_NUMBER (equals "1", "2", ...)
|
|
||||||
# The app instance name is available as $YNH_APP_INSTANCE_NAME
|
|
||||||
# - the first time the app is installed, YNH_APP_INSTANCE_NAME = ynhexample
|
|
||||||
# - the second time the app is installed, YNH_APP_INSTANCE_NAME = ynhexample__2
|
|
||||||
# - ynhexample__{N} for the subsequent installations, with N=3,4, ...
|
|
||||||
# The app instance name is probably what you are interested the most, since this is
|
|
||||||
# guaranteed to be unique. This is a good unique identifier to define installation path,
|
|
||||||
# db names, ...
|
|
||||||
|
|
||||||
source .fonctions # Loads the generic functions usually used in the script
|
|
||||||
|
|
||||||
# Source YunoHost helpers
|
|
||||||
source /usr/share/yunohost/helpers
|
source /usr/share/yunohost/helpers
|
||||||
|
|
||||||
TRAP_ON # Active trap for strop script if detect error
|
#=================================================
|
||||||
|
# MANAGE SCRIPT FAILURE
|
||||||
|
#=================================================
|
||||||
|
|
||||||
|
# Exit if an error occurs during the execution of the script
|
||||||
|
ynh_abort_if_errors
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# RETRIEVE ARGUMENTS FROM THE MANIFEST
|
||||||
|
#=================================================
|
||||||
|
|
||||||
app=$YNH_APP_INSTANCE_NAME
|
app=$YNH_APP_INSTANCE_NAME
|
||||||
|
|
||||||
# Retrieve arguments
|
# Retrieve arguments
|
||||||
domain=$YNH_APP_ARG_DOMAIN
|
domain=$YNH_APP_ARG_DOMAIN
|
||||||
path=$YNH_APP_ARG_PATH
|
path_url=$YNH_APP_ARG_PATH
|
||||||
is_public=$YNH_APP_ARG_IS_PUBLIC
|
is_public=$YNH_APP_ARG_IS_PUBLIC
|
||||||
admin_username=$YNH_APP_ARG_USERNAME
|
admin_username=$YNH_APP_ARG_USERNAME
|
||||||
admin_name=$YNH_APP_ARG_NAME
|
admin_name=$YNH_APP_ARG_NAME
|
||||||
admin_email=$YNH_APP_ARG_EMAIL
|
admin_email=$YNH_APP_ARG_EMAIL
|
||||||
admin_password=$(openssl passwd -1 -salt xyz $YNH_APP_ARG_PASSWORD)
|
admin_password=$(openssl passwd -1 -salt xyz $YNH_APP_ARG_PASSWORD)
|
||||||
|
path
|
||||||
|
#=================================================
|
||||||
|
# CHECK IF THE APP CAN BE INSTALLED WITH THESE ARGS
|
||||||
|
#=================================================
|
||||||
|
|
||||||
CHECK_VAR "$app" "app name not set"
|
# Normalize the url path syntax
|
||||||
|
path_url=$(ynh_normalize_url_path $path_url)
|
||||||
|
|
||||||
CHECK_PATH
|
# Check web path availability
|
||||||
|
ynh_webpath_available $domain $path_url
|
||||||
|
# Register (book) web path
|
||||||
|
ynh_webpath_register $app $domain $path_url
|
||||||
|
|
||||||
CHECK_DOMAINPATH
|
final_path=/var/www/$app
|
||||||
|
test ! -e "$final_path" || ynh_die "This path already contains a folder"
|
||||||
CHECK_FINALPATH
|
|
||||||
|
|
||||||
|
|
||||||
# Save app settings
|
# Save app settings
|
||||||
ynh_app_setting_set "$app" is_public "$is_public"
|
ynh_app_setting_set "$app" is_public "$is_public"
|
||||||
ynh_app_setting_set $app domain $domain
|
ynh_app_setting_set $app domain $domain
|
||||||
ynh_app_setting_set $app path $path
|
ynh_app_setting_set $app path $path_url
|
||||||
|
|
||||||
|
|
||||||
# Check password strength
|
# Check password strength
|
||||||
|
@ -52,31 +58,32 @@ ynh_app_setting_set $app path $path
|
||||||
"The password is too weak, it must be longer than 6 characters"
|
"The password is too weak, it must be longer than 6 characters"
|
||||||
|
|
||||||
|
|
||||||
# Copy files to the right place
|
#=================================================
|
||||||
sudo mkdir "$final_path"
|
# DOWNLOAD, CHECK AND UNPACK SOURCE
|
||||||
ynh_app_setting_set $app final_path $final_path
|
#=================================================
|
||||||
# Get source
|
|
||||||
SETUP_SOURCE
|
|
||||||
|
|
||||||
|
ynh_app_setting_set $app final_path $final_path
|
||||||
|
# Download, check integrity, uncompress and patch the source from app.src
|
||||||
|
ynh_setup_source "$final_path"
|
||||||
# Set permissions to app files
|
# Set permissions to app files
|
||||||
# you may need to make some file and/or directory writeable by www-data (nginx user)
|
# you may need to make some file and/or directory writeable by www-data (nginx user)
|
||||||
sudo chown -R root: $final_path
|
sudo chown -R root: $final_path
|
||||||
|
|
||||||
### MySQL (can be removed if not used) ###
|
|
||||||
# If your app use a MySQL database you can use these lines to bootstrap
|
#=================================================
|
||||||
# a database, an associated user and save the password in app settings.
|
# CREATE A MYSQL DATABASE
|
||||||
#
|
#=================================================
|
||||||
# # Generate MySQL password and create database
|
# If your app uses a MySQL database, you can use these lines to bootstrap
|
||||||
dbuser=$app
|
# a database, an associated user and save the password in app settings
|
||||||
dbname=$app
|
|
||||||
dbpass=$(ynh_string_random 12)
|
db_name=$(ynh_sanitize_dbid $app)
|
||||||
ynh_app_setting_set "$app" mysqlpwd "$dbpass"
|
ynh_app_setting_set $app db_name $db_name
|
||||||
ynh_mysql_create_db "$dbname" "$dbuser" "$dbpass"
|
ynh_mysql_setup_db $db_name $db_name
|
||||||
|
|
||||||
# Adding the details of the database to the config file
|
# Adding the details of the database to the config file
|
||||||
sed -i "s@__dbuser__@$dbuser@g" ../conf/config.ini.php
|
sed -i "s@__dbuser__@$db_name@g" ../conf/config.ini.php
|
||||||
sed -i "s@__dbpass__@$dbpass@g" ../conf/config.ini.php
|
sed -i "s@__dbpass__@$db_pwd@g" ../conf/config.ini.php
|
||||||
sed -i "s@__dbname__@$dbname@g" ../conf/config.ini.php
|
sed -i "s@__dbname__@$db_name@g" ../conf/config.ini.php
|
||||||
|
|
||||||
# Copy the config file to the final path
|
# Copy the config file to the final path
|
||||||
sudo cp ../conf/config.ini.php $final_path/data/.
|
sudo cp ../conf/config.ini.php $final_path/data/.
|
||||||
|
@ -84,8 +91,7 @@ sudo cp ../conf/config.ini.php $final_path/data/.
|
||||||
|
|
||||||
|
|
||||||
# # Load initial SQL into the new database
|
# # Load initial SQL into the new database
|
||||||
ynh_mysql_connect_as "$dbuser" "$dbpass" "$dbname" \
|
ynh_mysql_connect_as "$db_name" "$db_pwd" "$db_name" < "../conf/sql/webtrees.sql"
|
||||||
< "../conf/sql/webtrees.sql"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -95,18 +101,13 @@ ynh_replace_string "__NAME__" "$admin_name" ../conf/sql/admin.sql
|
||||||
ynh_replace_string "__USER_EMAIL__" "$admin_email" ../conf/sql/admin.sql
|
ynh_replace_string "__USER_EMAIL__" "$admin_email" ../conf/sql/admin.sql
|
||||||
ynh_replace_string "__PASSWORD__" "$admin_password" ../conf/sql/admin.sql
|
ynh_replace_string "__PASSWORD__" "$admin_password" ../conf/sql/admin.sql
|
||||||
|
|
||||||
ynh_mysql_connect_as "$dbuser" "$dbpass" "$dbname" < "../conf/sql/admin.sql"
|
ynh_mysql_connect_as "$db_name" "$db_pwd" "$db_name" < "../conf/sql/admin.sql"
|
||||||
|
|
||||||
### MySQL end ###
|
### MySQL end ###
|
||||||
|
|
||||||
# Modify Nginx configuration file and copy it to Nginx conf directory
|
# Create a dedicated nginx config
|
||||||
nginx_conf=../conf/nginx.conf
|
ynh_add_nginx_config
|
||||||
sed -i "s@YNH_WWW_PATH@$path@g" $nginx_conf
|
|
||||||
sed -i "s@YNH_WWW_ALIAS@$final_path/@g" $nginx_conf
|
|
||||||
# If a dedicated php-fpm process is used:
|
|
||||||
# Don't forget to modify ../conf/nginx.conf accordingly or your app will not work!
|
|
||||||
# sed -i "s@YNH_WWW_APP@$app@g" $nginx_conf
|
|
||||||
sudo cp $nginx_conf /etc/nginx/conf.d/$domain.d/$app.conf
|
|
||||||
|
|
||||||
|
|
||||||
# If app is public, add url to SSOWat conf as skipped_uris
|
# If app is public, add url to SSOWat conf as skipped_uris
|
||||||
|
|
|
@ -1,23 +1,34 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# Exit on command errors and treat unset variables as an error
|
#=================================================
|
||||||
set -u
|
# GENERIC START
|
||||||
|
#=================================================
|
||||||
|
# IMPORT GENERIC HELPERS
|
||||||
|
#=================================================
|
||||||
|
|
||||||
# See comments in install script
|
source _common.sh
|
||||||
app=$YNH_APP_INSTANCE_NAME
|
|
||||||
|
|
||||||
|
|
||||||
# Source YunoHost helpers
|
|
||||||
source /usr/share/yunohost/helpers
|
source /usr/share/yunohost/helpers
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# LOAD SETTINGS
|
||||||
|
#=================================================
|
||||||
|
app=$YNH_APP_INSTANCE_NAME
|
||||||
|
|
||||||
# Retrieve app settings
|
# Retrieve app settings
|
||||||
domain=$(ynh_app_setting_get "$app" domain)
|
domain=$(ynh_app_setting_get "$app" domain)
|
||||||
|
db_name=$(ynh_app_setting_get $app db_name)
|
||||||
|
|
||||||
# Remove sources
|
|
||||||
sudo rm -rf /var/www/$app
|
|
||||||
|
|
||||||
# Remove nginx configuration file
|
# Remove the app directory securely
|
||||||
[[ -n $domain ]] && sudo rm -f "/etc/nginx/conf.d/${domain}.d/${app}.conf"
|
ynh_secure_remove "/var/www/$app"
|
||||||
|
|
||||||
|
#=================================================
|
||||||
|
# REMOVE NGINX CONFIGURATION
|
||||||
|
#=================================================
|
||||||
|
|
||||||
|
# Remove the dedicated nginx config
|
||||||
|
ynh_remove_nginx_config
|
||||||
|
|
||||||
|
|
||||||
### PHP (remove if not used) ###
|
### PHP (remove if not used) ###
|
||||||
# If a dedicated php-fpm process is used:
|
# If a dedicated php-fpm process is used:
|
||||||
|
@ -25,15 +36,5 @@ sudo rm -rf /var/www/$app
|
||||||
# sudo service php5-fpm reload
|
# sudo service php5-fpm reload
|
||||||
### PHP end ###
|
### PHP end ###
|
||||||
|
|
||||||
### MySQL (remove if not used) ###
|
# Remove a database if it exists, along with the associated user
|
||||||
# If a MySQL database is used:
|
ynh_mysql_remove_db $db_name $db_name
|
||||||
# # Drop MySQL database and user
|
|
||||||
dbname=$app
|
|
||||||
dbuser=$app
|
|
||||||
ynh_mysql_drop_db "$dbname" || true
|
|
||||||
ynh_mysql_drop_user "$dbuser" || true
|
|
||||||
### MySQL end ###
|
|
||||||
|
|
||||||
# Reload nginx service
|
|
||||||
sudo service nginx reload
|
|
||||||
echo -e "\e[0m" # Restore normal color
|
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
webtrees
|
|
|
@ -1 +0,0 @@
|
||||||
0f51ab5af9414b981ade19b582a7dd06 webtrees-1.7.9.zip
|
|
|
@ -1 +0,0 @@
|
||||||
https://launchpad.net/webtrees/1.7/1.7.9/+download/webtrees-1.7.9.zip
|
|
Loading…
Reference in a new issue