mirror of
https://github.com/YunoHost/yunohost.git
synced 2024-09-03 20:06:10 +02:00
Standardize tabulations
This commit is contained in:
parent
1dd4a73e17
commit
80964a1312
18 changed files with 1429 additions and 1430 deletions
|
@ -114,7 +114,7 @@ ynh_package_update() {
|
||||||
# Requires YunoHost version 2.2.4 or higher.
|
# Requires YunoHost version 2.2.4 or higher.
|
||||||
ynh_package_install() {
|
ynh_package_install() {
|
||||||
ynh_apt --no-remove -o Dpkg::Options::=--force-confdef \
|
ynh_apt --no-remove -o Dpkg::Options::=--force-confdef \
|
||||||
-o Dpkg::Options::=--force-confold install $@
|
-o Dpkg::Options::=--force-confold install $@
|
||||||
}
|
}
|
||||||
|
|
||||||
# Remove package(s)
|
# Remove package(s)
|
||||||
|
@ -194,7 +194,7 @@ ynh_package_install_from_equivs () {
|
||||||
{ # If the installation failed
|
{ # If the installation failed
|
||||||
# Get the list of dependencies from the deb
|
# Get the list of dependencies from the deb
|
||||||
local dependencies="$(dpkg --info "$TMPDIR/${pkgname}_${pkgversion}_all.deb" | grep Depends | \
|
local dependencies="$(dpkg --info "$TMPDIR/${pkgname}_${pkgversion}_all.deb" | grep Depends | \
|
||||||
sed 's/^ Depends: //' | sed 's/,//g')"
|
sed 's/^ Depends: //' | sed 's/,//g')"
|
||||||
# Fake an install of those dependencies to see the errors
|
# Fake an install of those dependencies to see the errors
|
||||||
# The sed command here is, Print only from '--fix-broken' to the end.
|
# The sed command here is, Print only from '--fix-broken' to the end.
|
||||||
ynh_package_install $dependencies --dry-run | sed -n '/--fix-broken/,$p' >&2
|
ynh_package_install $dependencies --dry-run | sed -n '/--fix-broken/,$p' >&2
|
||||||
|
@ -222,7 +222,7 @@ ynh_install_app_dependencies () {
|
||||||
local dependencies=${dependencies//|/ | }
|
local dependencies=${dependencies//|/ | }
|
||||||
local manifest_path="../manifest.json"
|
local manifest_path="../manifest.json"
|
||||||
if [ ! -e "$manifest_path" ]; then
|
if [ ! -e "$manifest_path" ]; then
|
||||||
manifest_path="../settings/manifest.json" # Into the restore script, the manifest is not at the same place
|
manifest_path="../settings/manifest.json" # Into the restore script, the manifest is not at the same place
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local version=$(grep '\"version\": ' "$manifest_path" | cut -d '"' -f 4) # Retrieve the version number in the manifest file.
|
local version=$(grep '\"version\": ' "$manifest_path" | cut -d '"' -f 4) # Retrieve the version number in the manifest file.
|
||||||
|
@ -293,28 +293,28 @@ EOF
|
||||||
# | arg: -p, --package - Packages to add as dependencies for the app.
|
# | arg: -p, --package - Packages to add as dependencies for the app.
|
||||||
# | arg: -r, --replace - Replace dependencies instead of adding to existing ones.
|
# | arg: -r, --replace - Replace dependencies instead of adding to existing ones.
|
||||||
ynh_add_app_dependencies () {
|
ynh_add_app_dependencies () {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=pr
|
local legacy_args=pr
|
||||||
local -A args_array=( [p]=package= [r]=replace)
|
local -A args_array=( [p]=package= [r]=replace)
|
||||||
local package
|
local package
|
||||||
local replace
|
local replace
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
replace=${replace:-0}
|
replace=${replace:-0}
|
||||||
|
|
||||||
local current_dependencies=""
|
local current_dependencies=""
|
||||||
if [ $replace -eq 0 ]
|
if [ $replace -eq 0 ]
|
||||||
then
|
then
|
||||||
local dep_app=${app//_/-} # Replace all '_' by '-'
|
local dep_app=${app//_/-} # Replace all '_' by '-'
|
||||||
if ynh_package_is_installed --package="${dep_app}-ynh-deps"
|
if ynh_package_is_installed --package="${dep_app}-ynh-deps"
|
||||||
then
|
then
|
||||||
current_dependencies="$(dpkg-query --show --showformat='${Depends}' ${dep_app}-ynh-deps) "
|
current_dependencies="$(dpkg-query --show --showformat='${Depends}' ${dep_app}-ynh-deps) "
|
||||||
fi
|
fi
|
||||||
|
|
||||||
current_dependencies=${current_dependencies// | /|}
|
current_dependencies=${current_dependencies// | /|}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ynh_install_app_dependencies "${current_dependencies}${package}"
|
ynh_install_app_dependencies "${current_dependencies}${package}"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Remove fake package and its dependencies
|
# Remove fake package and its dependencies
|
||||||
|
@ -339,31 +339,31 @@ ynh_remove_app_dependencies () {
|
||||||
# | arg: -k, --key - url to get the public key.
|
# | arg: -k, --key - url to get the public key.
|
||||||
# | arg: -n, --name - Name for the files for this repo, $app as default value.
|
# | arg: -n, --name - Name for the files for this repo, $app as default value.
|
||||||
ynh_install_extra_app_dependencies () {
|
ynh_install_extra_app_dependencies () {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=rpkn
|
local legacy_args=rpkn
|
||||||
local -A args_array=( [r]=repo= [p]=package= [k]=key= [n]=name= )
|
local -A args_array=( [r]=repo= [p]=package= [k]=key= [n]=name= )
|
||||||
local repo
|
local repo
|
||||||
local package
|
local package
|
||||||
local key
|
local key
|
||||||
local name
|
local name
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
name="${name:-$app}"
|
name="${name:-$app}"
|
||||||
key=${key:-}
|
key=${key:-}
|
||||||
|
|
||||||
# Set a key only if asked
|
# Set a key only if asked
|
||||||
if [ -n "$key" ]
|
if [ -n "$key" ]
|
||||||
then
|
then
|
||||||
key="--key=$key"
|
key="--key=$key"
|
||||||
fi
|
fi
|
||||||
# Add an extra repository for those packages
|
# Add an extra repository for those packages
|
||||||
ynh_install_extra_repo --repo="$repo" $key --priority=995 --name=$name
|
ynh_install_extra_repo --repo="$repo" $key --priority=995 --name=$name
|
||||||
|
|
||||||
# Install requested dependencies from this extra repository.
|
# Install requested dependencies from this extra repository.
|
||||||
ynh_add_app_dependencies --package="$package"
|
ynh_add_app_dependencies --package="$package"
|
||||||
|
|
||||||
# Remove this extra repository after packages are installed
|
# Remove this extra repository after packages are installed
|
||||||
ynh_remove_extra_repo --name=$app
|
ynh_remove_extra_repo --name=$app
|
||||||
}
|
}
|
||||||
|
|
||||||
# Add an extra repository correctly, pin it and get the key.
|
# Add an extra repository correctly, pin it and get the key.
|
||||||
|
@ -377,66 +377,66 @@ ynh_install_extra_app_dependencies () {
|
||||||
# | arg: -n, --name - Name for the files for this repo, $app as default value.
|
# | arg: -n, --name - Name for the files for this repo, $app as default value.
|
||||||
# | arg: -a, --append - Do not overwrite existing files.
|
# | arg: -a, --append - Do not overwrite existing files.
|
||||||
ynh_install_extra_repo () {
|
ynh_install_extra_repo () {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=rkpna
|
local legacy_args=rkpna
|
||||||
local -A args_array=( [r]=repo= [k]=key= [p]=priority= [n]=name= [a]=append )
|
local -A args_array=( [r]=repo= [k]=key= [p]=priority= [n]=name= [a]=append )
|
||||||
local repo
|
local repo
|
||||||
local key
|
local key
|
||||||
local priority
|
local priority
|
||||||
local name
|
local name
|
||||||
local append
|
local append
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
name="${name:-$app}"
|
name="${name:-$app}"
|
||||||
append=${append:-0}
|
append=${append:-0}
|
||||||
key=${key:-}
|
key=${key:-}
|
||||||
priority=${priority:-}
|
priority=${priority:-}
|
||||||
|
|
||||||
if [ $append -eq 1 ]
|
if [ $append -eq 1 ]
|
||||||
then
|
then
|
||||||
append="--append"
|
append="--append"
|
||||||
wget_append="tee -a"
|
wget_append="tee -a"
|
||||||
else
|
else
|
||||||
append=""
|
append=""
|
||||||
wget_append="tee"
|
wget_append="tee"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Split the repository into uri, suite and components.
|
# Split the repository into uri, suite and components.
|
||||||
# Remove "deb " at the beginning of the repo.
|
# Remove "deb " at the beginning of the repo.
|
||||||
repo="${repo#deb }"
|
repo="${repo#deb }"
|
||||||
|
|
||||||
# Get the uri
|
# Get the uri
|
||||||
local uri="$(echo "$repo" | awk '{ print $1 }')"
|
local uri="$(echo "$repo" | awk '{ print $1 }')"
|
||||||
|
|
||||||
# Get the suite
|
# Get the suite
|
||||||
local suite="$(echo "$repo" | awk '{ print $2 }')"
|
local suite="$(echo "$repo" | awk '{ print $2 }')"
|
||||||
|
|
||||||
# Get the components
|
# Get the components
|
||||||
local component="${repo##$uri $suite }"
|
local component="${repo##$uri $suite }"
|
||||||
|
|
||||||
# Add the repository into sources.list.d
|
# Add the repository into sources.list.d
|
||||||
ynh_add_repo --uri="$uri" --suite="$suite" --component="$component" --name="$name" $append
|
ynh_add_repo --uri="$uri" --suite="$suite" --component="$component" --name="$name" $append
|
||||||
|
|
||||||
# Pin the new repo with the default priority, so it won't be used for upgrades.
|
# Pin the new repo with the default priority, so it won't be used for upgrades.
|
||||||
# Build $pin from the uri without http and any sub path
|
# Build $pin from the uri without http and any sub path
|
||||||
local pin="${uri#*://}"
|
local pin="${uri#*://}"
|
||||||
pin="${pin%%/*}"
|
pin="${pin%%/*}"
|
||||||
# Set a priority only if asked
|
# Set a priority only if asked
|
||||||
if [ -n "$priority" ]
|
if [ -n "$priority" ]
|
||||||
then
|
then
|
||||||
priority="--priority=$priority"
|
priority="--priority=$priority"
|
||||||
fi
|
fi
|
||||||
ynh_pin_repo --package="*" --pin="origin \"$pin\"" $priority --name="$name" $append
|
ynh_pin_repo --package="*" --pin="origin \"$pin\"" $priority --name="$name" $append
|
||||||
|
|
||||||
# Get the public key for the repo
|
# Get the public key for the repo
|
||||||
if [ -n "$key" ]
|
if [ -n "$key" ]
|
||||||
then
|
then
|
||||||
mkdir -p "/etc/apt/trusted.gpg.d"
|
mkdir -p "/etc/apt/trusted.gpg.d"
|
||||||
wget -q "$key" -O - | gpg --dearmor | $wget_append /etc/apt/trusted.gpg.d/$name.gpg > /dev/null
|
wget -q "$key" -O - | gpg --dearmor | $wget_append /etc/apt/trusted.gpg.d/$name.gpg > /dev/null
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Update the list of package with the new repo
|
# Update the list of package with the new repo
|
||||||
ynh_package_update
|
ynh_package_update
|
||||||
}
|
}
|
||||||
|
|
||||||
# Remove an extra repository and the assiociated configuration.
|
# Remove an extra repository and the assiociated configuration.
|
||||||
|
@ -446,21 +446,21 @@ ynh_install_extra_repo () {
|
||||||
# usage: ynh_remove_extra_repo [--name=name]
|
# usage: ynh_remove_extra_repo [--name=name]
|
||||||
# | arg: -n, --name - Name for the files for this repo, $app as default value.
|
# | arg: -n, --name - Name for the files for this repo, $app as default value.
|
||||||
ynh_remove_extra_repo () {
|
ynh_remove_extra_repo () {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=n
|
local legacy_args=n
|
||||||
local -A args_array=( [n]=name= )
|
local -A args_array=( [n]=name= )
|
||||||
local name
|
local name
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
name="${name:-$app}"
|
name="${name:-$app}"
|
||||||
|
|
||||||
ynh_secure_remove "/etc/apt/sources.list.d/$name.list"
|
ynh_secure_remove "/etc/apt/sources.list.d/$name.list"
|
||||||
ynh_secure_remove "/etc/apt/preferences.d/$name"
|
ynh_secure_remove "/etc/apt/preferences.d/$name"
|
||||||
ynh_secure_remove "/etc/apt/trusted.gpg.d/$name.gpg"
|
ynh_secure_remove "/etc/apt/trusted.gpg.d/$name.gpg"
|
||||||
ynh_secure_remove "/etc/apt/trusted.gpg.d/$name.asc"
|
ynh_secure_remove "/etc/apt/trusted.gpg.d/$name.asc"
|
||||||
|
|
||||||
# Update the list of package to exclude the old repo
|
# Update the list of package to exclude the old repo
|
||||||
ynh_package_update
|
ynh_package_update
|
||||||
}
|
}
|
||||||
|
|
||||||
# Add a repository.
|
# Add a repository.
|
||||||
|
@ -479,30 +479,30 @@ ynh_remove_extra_repo () {
|
||||||
# ynh_add_repo --uri=http://forge.yunohost.org/debian/ --suite=stretch --component=stable
|
# ynh_add_repo --uri=http://forge.yunohost.org/debian/ --suite=stretch --component=stable
|
||||||
#
|
#
|
||||||
ynh_add_repo () {
|
ynh_add_repo () {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=uscna
|
local legacy_args=uscna
|
||||||
local -A args_array=( [u]=uri= [s]=suite= [c]=component= [n]=name= [a]=append )
|
local -A args_array=( [u]=uri= [s]=suite= [c]=component= [n]=name= [a]=append )
|
||||||
local uri
|
local uri
|
||||||
local suite
|
local suite
|
||||||
local component
|
local component
|
||||||
local name
|
local name
|
||||||
local append
|
local append
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
name="${name:-$app}"
|
name="${name:-$app}"
|
||||||
append=${append:-0}
|
append=${append:-0}
|
||||||
|
|
||||||
if [ $append -eq 1 ]
|
if [ $append -eq 1 ]
|
||||||
then
|
then
|
||||||
append="tee -a"
|
append="tee -a"
|
||||||
else
|
else
|
||||||
append="tee"
|
append="tee"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mkdir -p "/etc/apt/sources.list.d"
|
mkdir -p "/etc/apt/sources.list.d"
|
||||||
# Add the new repo in sources.list.d
|
# Add the new repo in sources.list.d
|
||||||
echo "deb $uri $suite $component" \
|
echo "deb $uri $suite $component" \
|
||||||
| $append "/etc/apt/sources.list.d/$name.list"
|
| $append "/etc/apt/sources.list.d/$name.list"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Pin a repository.
|
# Pin a repository.
|
||||||
|
@ -519,32 +519,32 @@ ynh_add_repo () {
|
||||||
# See https://manpages.debian.org/stretch/apt/apt_preferences.5.en.html#How_APT_Interprets_Priorities for information about pinning.
|
# See https://manpages.debian.org/stretch/apt/apt_preferences.5.en.html#How_APT_Interprets_Priorities for information about pinning.
|
||||||
#
|
#
|
||||||
ynh_pin_repo () {
|
ynh_pin_repo () {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=pirna
|
local legacy_args=pirna
|
||||||
local -A args_array=( [p]=package= [i]=pin= [r]=priority= [n]=name= [a]=append )
|
local -A args_array=( [p]=package= [i]=pin= [r]=priority= [n]=name= [a]=append )
|
||||||
local package
|
local package
|
||||||
local pin
|
local pin
|
||||||
local priority
|
local priority
|
||||||
local name
|
local name
|
||||||
local append
|
local append
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
package="${package:-*}"
|
package="${package:-*}"
|
||||||
priority=${priority:-50}
|
priority=${priority:-50}
|
||||||
name="${name:-$app}"
|
name="${name:-$app}"
|
||||||
append=${append:-0}
|
append=${append:-0}
|
||||||
|
|
||||||
if [ $append -eq 1 ]
|
if [ $append -eq 1 ]
|
||||||
then
|
then
|
||||||
append="tee -a"
|
append="tee -a"
|
||||||
else
|
else
|
||||||
append="tee"
|
append="tee"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mkdir -p "/etc/apt/preferences.d"
|
mkdir -p "/etc/apt/preferences.d"
|
||||||
echo "Package: $package
|
echo "Package: $package
|
||||||
Pin: $pin
|
Pin: $pin
|
||||||
Pin-Priority: $priority
|
Pin-Priority: $priority
|
||||||
" \
|
" \
|
||||||
| $append "/etc/apt/preferences.d/$name"
|
| $append "/etc/apt/preferences.d/$name"
|
||||||
}
|
}
|
||||||
|
|
|
@ -80,16 +80,16 @@ ynh_backup() {
|
||||||
ynh_print_warn --message="Source path '${src_path}' does not exist"
|
ynh_print_warn --message="Source path '${src_path}' does not exist"
|
||||||
if [ "$not_mandatory" == "0" ]
|
if [ "$not_mandatory" == "0" ]
|
||||||
then
|
then
|
||||||
# This is a temporary fix for fail2ban config files missing after the migration to stretch.
|
# This is a temporary fix for fail2ban config files missing after the migration to stretch.
|
||||||
if echo "${src_path}" | grep --quiet "/etc/fail2ban"
|
if echo "${src_path}" | grep --quiet "/etc/fail2ban"
|
||||||
then
|
then
|
||||||
touch "${src_path}"
|
touch "${src_path}"
|
||||||
ynh_print_info --message="The missing file will be replaced by a dummy one for the backup !!!"
|
ynh_print_info --message="The missing file will be replaced by a dummy one for the backup !!!"
|
||||||
else
|
else
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -63,47 +63,47 @@
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 3.5.0 or higher.
|
# Requires YunoHost version 3.5.0 or higher.
|
||||||
ynh_add_fail2ban_config () {
|
ynh_add_fail2ban_config () {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=lrmptv
|
local legacy_args=lrmptv
|
||||||
local -A args_array=( [l]=logpath= [r]=failregex= [m]=max_retry= [p]=ports= [t]=use_template [v]=others_var=)
|
local -A args_array=( [l]=logpath= [r]=failregex= [m]=max_retry= [p]=ports= [t]=use_template [v]=others_var=)
|
||||||
local logpath
|
local logpath
|
||||||
local failregex
|
local failregex
|
||||||
local max_retry
|
local max_retry
|
||||||
local ports
|
local ports
|
||||||
local others_var
|
local others_var
|
||||||
local use_template
|
local use_template
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
use_template="${use_template:-0}"
|
use_template="${use_template:-0}"
|
||||||
max_retry=${max_retry:-3}
|
max_retry=${max_retry:-3}
|
||||||
ports=${ports:-http,https}
|
ports=${ports:-http,https}
|
||||||
|
|
||||||
finalfail2banjailconf="/etc/fail2ban/jail.d/$app.conf"
|
finalfail2banjailconf="/etc/fail2ban/jail.d/$app.conf"
|
||||||
finalfail2banfilterconf="/etc/fail2ban/filter.d/$app.conf"
|
finalfail2banfilterconf="/etc/fail2ban/filter.d/$app.conf"
|
||||||
ynh_backup_if_checksum_is_different "$finalfail2banjailconf"
|
ynh_backup_if_checksum_is_different "$finalfail2banjailconf"
|
||||||
ynh_backup_if_checksum_is_different "$finalfail2banfilterconf"
|
ynh_backup_if_checksum_is_different "$finalfail2banfilterconf"
|
||||||
|
|
||||||
if [ $use_template -eq 1 ]
|
if [ $use_template -eq 1 ]
|
||||||
then
|
|
||||||
# Usage 2, templates
|
|
||||||
cp ../conf/f2b_jail.conf $finalfail2banjailconf
|
|
||||||
cp ../conf/f2b_filter.conf $finalfail2banfilterconf
|
|
||||||
|
|
||||||
if [ -n "${app:-}" ]
|
|
||||||
then
|
then
|
||||||
ynh_replace_string "__APP__" "$app" "$finalfail2banjailconf"
|
# Usage 2, templates
|
||||||
ynh_replace_string "__APP__" "$app" "$finalfail2banfilterconf"
|
cp ../conf/f2b_jail.conf $finalfail2banjailconf
|
||||||
fi
|
cp ../conf/f2b_filter.conf $finalfail2banfilterconf
|
||||||
|
|
||||||
# Replace all other variable given as arguments
|
if [ -n "${app:-}" ]
|
||||||
for var_to_replace in ${others_var:-}; do
|
then
|
||||||
# ${var_to_replace^^} make the content of the variable on upper-cases
|
ynh_replace_string "__APP__" "$app" "$finalfail2banjailconf"
|
||||||
# ${!var_to_replace} get the content of the variable named $var_to_replace
|
ynh_replace_string "__APP__" "$app" "$finalfail2banfilterconf"
|
||||||
ynh_replace_string --match_string="__${var_to_replace^^}__" --replace_string="${!var_to_replace}" --target_file="$finalfail2banjailconf"
|
fi
|
||||||
ynh_replace_string --match_string="__${var_to_replace^^}__" --replace_string="${!var_to_replace}" --target_file="$finalfail2banfilterconf"
|
|
||||||
done
|
|
||||||
|
|
||||||
else
|
# Replace all other variable given as arguments
|
||||||
|
for var_to_replace in ${others_var:-}; do
|
||||||
|
# ${var_to_replace^^} make the content of the variable on upper-cases
|
||||||
|
# ${!var_to_replace} get the content of the variable named $var_to_replace
|
||||||
|
ynh_replace_string --match_string="__${var_to_replace^^}__" --replace_string="${!var_to_replace}" --target_file="$finalfail2banjailconf"
|
||||||
|
ynh_replace_string --match_string="__${var_to_replace^^}__" --replace_string="${!var_to_replace}" --target_file="$finalfail2banfilterconf"
|
||||||
|
done
|
||||||
|
|
||||||
|
else
|
||||||
# Usage 1, no template. Build a config file from scratch.
|
# Usage 1, no template. Build a config file from scratch.
|
||||||
test -n "$logpath" || ynh_die "ynh_add_fail2ban_config expects a logfile path as first argument and received nothing."
|
test -n "$logpath" || ynh_die "ynh_add_fail2ban_config expects a logfile path as first argument and received nothing."
|
||||||
test -n "$failregex" || ynh_die "ynh_add_fail2ban_config expects a failure regex as second argument and received nothing."
|
test -n "$failregex" || ynh_die "ynh_add_fail2ban_config expects a failure regex as second argument and received nothing."
|
||||||
|
@ -124,19 +124,19 @@ before = common.conf
|
||||||
failregex = $failregex
|
failregex = $failregex
|
||||||
ignoreregex =
|
ignoreregex =
|
||||||
EOF
|
EOF
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Common to usage 1 and 2.
|
# Common to usage 1 and 2.
|
||||||
ynh_store_file_checksum "$finalfail2banjailconf"
|
ynh_store_file_checksum "$finalfail2banjailconf"
|
||||||
ynh_store_file_checksum "$finalfail2banfilterconf"
|
ynh_store_file_checksum "$finalfail2banfilterconf"
|
||||||
|
|
||||||
ynh_systemd_action --service_name=fail2ban --action=reload
|
ynh_systemd_action --service_name=fail2ban --action=reload
|
||||||
|
|
||||||
local fail2ban_error="$(journalctl -u fail2ban | tail -n50 | grep "WARNING.*$app.*")"
|
local fail2ban_error="$(journalctl -u fail2ban | tail -n50 | grep "WARNING.*$app.*")"
|
||||||
if [[ -n "$fail2ban_error" ]]; then
|
if [[ -n "$fail2ban_error" ]]; then
|
||||||
ynh_print_err --message="Fail2ban failed to load the jail for $app"
|
ynh_print_err --message="Fail2ban failed to load the jail for $app"
|
||||||
ynh_print_warn --message="${fail2ban_error#*WARNING}"
|
ynh_print_warn --message="${fail2ban_error#*WARNING}"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Remove the dedicated fail2ban config (jail and filter conf files)
|
# Remove the dedicated fail2ban config (jail and filter conf files)
|
||||||
|
@ -145,7 +145,7 @@ EOF
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 3.5.0 or higher.
|
# Requires YunoHost version 3.5.0 or higher.
|
||||||
ynh_remove_fail2ban_config () {
|
ynh_remove_fail2ban_config () {
|
||||||
ynh_secure_remove "/etc/fail2ban/jail.d/$app.conf"
|
ynh_secure_remove "/etc/fail2ban/jail.d/$app.conf"
|
||||||
ynh_secure_remove "/etc/fail2ban/filter.d/$app.conf"
|
ynh_secure_remove "/etc/fail2ban/filter.d/$app.conf"
|
||||||
ynh_systemd_action --service_name=fail2ban --action=reload
|
ynh_systemd_action --service_name=fail2ban --action=reload
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,173 +46,173 @@
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 3.2.2 or higher.
|
# Requires YunoHost version 3.2.2 or higher.
|
||||||
ynh_handle_getopts_args () {
|
ynh_handle_getopts_args () {
|
||||||
# Manage arguments only if there's some provided
|
# Manage arguments only if there's some provided
|
||||||
set +x
|
set +x
|
||||||
if [ $# -ne 0 ]
|
if [ $# -ne 0 ]
|
||||||
then
|
then
|
||||||
# Store arguments in an array to keep each argument separated
|
# Store arguments in an array to keep each argument separated
|
||||||
local arguments=("$@")
|
local arguments=("$@")
|
||||||
|
|
||||||
# For each option in the array, reduce to short options for getopts (e.g. for [u]=user, --user will be -u)
|
# For each option in the array, reduce to short options for getopts (e.g. for [u]=user, --user will be -u)
|
||||||
# And built parameters string for getopts
|
# And built parameters string for getopts
|
||||||
# ${!args_array[@]} is the list of all option_flags in the array (An option_flag is 'u' in [u]=user, user is a value)
|
# ${!args_array[@]} is the list of all option_flags in the array (An option_flag is 'u' in [u]=user, user is a value)
|
||||||
local getopts_parameters=""
|
local getopts_parameters=""
|
||||||
local option_flag=""
|
local option_flag=""
|
||||||
for option_flag in "${!args_array[@]}"
|
for option_flag in "${!args_array[@]}"
|
||||||
do
|
do
|
||||||
# Concatenate each option_flags of the array to build the string of arguments for getopts
|
# Concatenate each option_flags of the array to build the string of arguments for getopts
|
||||||
# Will looks like 'abcd' for -a -b -c -d
|
# Will looks like 'abcd' for -a -b -c -d
|
||||||
# If the value of an option_flag finish by =, it's an option with additionnal values. (e.g. --user bob or -u bob)
|
# If the value of an option_flag finish by =, it's an option with additionnal values. (e.g. --user bob or -u bob)
|
||||||
# Check the last character of the value associate to the option_flag
|
# Check the last character of the value associate to the option_flag
|
||||||
if [ "${args_array[$option_flag]: -1}" = "=" ]
|
if [ "${args_array[$option_flag]: -1}" = "=" ]
|
||||||
then
|
then
|
||||||
# For an option with additionnal values, add a ':' after the letter for getopts.
|
# For an option with additionnal values, add a ':' after the letter for getopts.
|
||||||
getopts_parameters="${getopts_parameters}${option_flag}:"
|
getopts_parameters="${getopts_parameters}${option_flag}:"
|
||||||
else
|
else
|
||||||
getopts_parameters="${getopts_parameters}${option_flag}"
|
getopts_parameters="${getopts_parameters}${option_flag}"
|
||||||
fi
|
fi
|
||||||
# Check each argument given to the function
|
# Check each argument given to the function
|
||||||
local arg=""
|
local arg=""
|
||||||
# ${#arguments[@]} is the size of the array
|
# ${#arguments[@]} is the size of the array
|
||||||
for arg in `seq 0 $(( ${#arguments[@]} - 1 ))`
|
for arg in `seq 0 $(( ${#arguments[@]} - 1 ))`
|
||||||
do
|
do
|
||||||
# Escape options' values starting with -. Otherwise the - will be considered as another option.
|
# Escape options' values starting with -. Otherwise the - will be considered as another option.
|
||||||
arguments[arg]="${arguments[arg]//--${args_array[$option_flag]}-/--${args_array[$option_flag]}\\TOBEREMOVED\\-}"
|
arguments[arg]="${arguments[arg]//--${args_array[$option_flag]}-/--${args_array[$option_flag]}\\TOBEREMOVED\\-}"
|
||||||
# And replace long option (value of the option_flag) by the short option, the option_flag itself
|
# And replace long option (value of the option_flag) by the short option, the option_flag itself
|
||||||
# (e.g. for [u]=user, --user will be -u)
|
# (e.g. for [u]=user, --user will be -u)
|
||||||
# Replace long option with =
|
# Replace long option with =
|
||||||
arguments[arg]="${arguments[arg]//--${args_array[$option_flag]}/-${option_flag} }"
|
arguments[arg]="${arguments[arg]//--${args_array[$option_flag]}/-${option_flag} }"
|
||||||
# And long option without =
|
# And long option without =
|
||||||
arguments[arg]="${arguments[arg]//--${args_array[$option_flag]%=}/-${option_flag}}"
|
arguments[arg]="${arguments[arg]//--${args_array[$option_flag]%=}/-${option_flag}}"
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
|
|
||||||
# Read and parse all the arguments
|
# Read and parse all the arguments
|
||||||
# Use a function here, to use standart arguments $@ and be able to use shift.
|
# Use a function here, to use standart arguments $@ and be able to use shift.
|
||||||
parse_arg () {
|
parse_arg () {
|
||||||
# Read all arguments, until no arguments are left
|
# Read all arguments, until no arguments are left
|
||||||
while [ $# -ne 0 ]
|
while [ $# -ne 0 ]
|
||||||
do
|
do
|
||||||
# Initialize the index of getopts
|
# Initialize the index of getopts
|
||||||
OPTIND=1
|
OPTIND=1
|
||||||
# Parse with getopts only if the argument begin by -, that means the argument is an option
|
# Parse with getopts only if the argument begin by -, that means the argument is an option
|
||||||
# getopts will fill $parameter with the letter of the option it has read.
|
# getopts will fill $parameter with the letter of the option it has read.
|
||||||
local parameter=""
|
local parameter=""
|
||||||
getopts ":$getopts_parameters" parameter || true
|
getopts ":$getopts_parameters" parameter || true
|
||||||
|
|
||||||
if [ "$parameter" = "?" ]
|
if [ "$parameter" = "?" ]
|
||||||
then
|
then
|
||||||
ynh_die --message="Invalid argument: -${OPTARG:-}"
|
ynh_die --message="Invalid argument: -${OPTARG:-}"
|
||||||
elif [ "$parameter" = ":" ]
|
elif [ "$parameter" = ":" ]
|
||||||
then
|
then
|
||||||
ynh_die --message="-$OPTARG parameter requires an argument."
|
ynh_die --message="-$OPTARG parameter requires an argument."
|
||||||
else
|
else
|
||||||
local shift_value=1
|
local shift_value=1
|
||||||
# Use the long option, corresponding to the short option read by getopts, as a variable
|
# Use the long option, corresponding to the short option read by getopts, as a variable
|
||||||
# (e.g. for [u]=user, 'user' will be used as a variable)
|
# (e.g. for [u]=user, 'user' will be used as a variable)
|
||||||
# Also, remove '=' at the end of the long option
|
# Also, remove '=' at the end of the long option
|
||||||
# The variable name will be stored in 'option_var'
|
# The variable name will be stored in 'option_var'
|
||||||
local option_var="${args_array[$parameter]%=}"
|
local option_var="${args_array[$parameter]%=}"
|
||||||
# If this option doesn't take values
|
# If this option doesn't take values
|
||||||
# if there's a '=' at the end of the long option name, this option takes values
|
# if there's a '=' at the end of the long option name, this option takes values
|
||||||
if [ "${args_array[$parameter]: -1}" != "=" ]
|
if [ "${args_array[$parameter]: -1}" != "=" ]
|
||||||
then
|
then
|
||||||
# 'eval ${option_var}' will use the content of 'option_var'
|
# 'eval ${option_var}' will use the content of 'option_var'
|
||||||
eval ${option_var}=1
|
eval ${option_var}=1
|
||||||
else
|
else
|
||||||
# Read all other arguments to find multiple value for this option.
|
# Read all other arguments to find multiple value for this option.
|
||||||
# Load args in a array
|
# Load args in a array
|
||||||
local all_args=("$@")
|
local all_args=("$@")
|
||||||
|
|
||||||
# If the first argument is longer than 2 characters,
|
# If the first argument is longer than 2 characters,
|
||||||
# There's a value attached to the option, in the same array cell
|
# There's a value attached to the option, in the same array cell
|
||||||
if [ ${#all_args[0]} -gt 2 ]; then
|
if [ ${#all_args[0]} -gt 2 ]; then
|
||||||
# Remove the option and the space, so keep only the value itself.
|
# Remove the option and the space, so keep only the value itself.
|
||||||
all_args[0]="${all_args[0]#-${parameter} }"
|
all_args[0]="${all_args[0]#-${parameter} }"
|
||||||
# Reduce the value of shift, because the option has been removed manually
|
# Reduce the value of shift, because the option has been removed manually
|
||||||
shift_value=$(( shift_value - 1 ))
|
shift_value=$(( shift_value - 1 ))
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Declare the content of option_var as a variable.
|
# Declare the content of option_var as a variable.
|
||||||
eval ${option_var}=""
|
eval ${option_var}=""
|
||||||
# Then read the array value per value
|
# Then read the array value per value
|
||||||
local i
|
local i
|
||||||
for i in `seq 0 $(( ${#all_args[@]} - 1 ))`
|
for i in `seq 0 $(( ${#all_args[@]} - 1 ))`
|
||||||
do
|
do
|
||||||
# If this argument is an option, end here.
|
# If this argument is an option, end here.
|
||||||
if [ "${all_args[$i]:0:1}" == "-" ]
|
if [ "${all_args[$i]:0:1}" == "-" ]
|
||||||
then
|
then
|
||||||
# Ignore the first value of the array, which is the option itself
|
# Ignore the first value of the array, which is the option itself
|
||||||
if [ "$i" -ne 0 ]; then
|
if [ "$i" -ne 0 ]; then
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
# Else, add this value to this option
|
# Else, add this value to this option
|
||||||
# Each value will be separated by ';'
|
# Each value will be separated by ';'
|
||||||
if [ -n "${!option_var}" ]
|
if [ -n "${!option_var}" ]
|
||||||
then
|
then
|
||||||
# If there's already another value for this option, add a ; before adding the new value
|
# If there's already another value for this option, add a ; before adding the new value
|
||||||
eval ${option_var}+="\;"
|
eval ${option_var}+="\;"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Remove the \ that escape - at beginning of values.
|
# Remove the \ that escape - at beginning of values.
|
||||||
all_args[i]="${all_args[i]//\\TOBEREMOVED\\/}"
|
all_args[i]="${all_args[i]//\\TOBEREMOVED\\/}"
|
||||||
|
|
||||||
# For the record.
|
# For the record.
|
||||||
# We're using eval here to get the content of the variable stored itself as simple text in $option_var...
|
# We're using eval here to get the content of the variable stored itself as simple text in $option_var...
|
||||||
# Other ways to get that content would be to use either ${!option_var} or declare -g ${option_var}
|
# Other ways to get that content would be to use either ${!option_var} or declare -g ${option_var}
|
||||||
# But... ${!option_var} can't be used as left part of an assignation.
|
# But... ${!option_var} can't be used as left part of an assignation.
|
||||||
# declare -g ${option_var} will create a local variable (despite -g !) and will not be available for the helper itself.
|
# declare -g ${option_var} will create a local variable (despite -g !) and will not be available for the helper itself.
|
||||||
# So... Stop fucking arguing each time that eval is evil... Go find an other working solution if you can find one!
|
# So... Stop fucking arguing each time that eval is evil... Go find an other working solution if you can find one!
|
||||||
|
|
||||||
eval ${option_var}+='"${all_args[$i]}"'
|
eval ${option_var}+='"${all_args[$i]}"'
|
||||||
shift_value=$(( shift_value + 1 ))
|
shift_value=$(( shift_value + 1 ))
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Shift the parameter and its argument(s)
|
# Shift the parameter and its argument(s)
|
||||||
shift $shift_value
|
shift $shift_value
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
# LEGACY MODE
|
# LEGACY MODE
|
||||||
# Check if there's getopts arguments
|
# Check if there's getopts arguments
|
||||||
if [ "${arguments[0]:0:1}" != "-" ]
|
if [ "${arguments[0]:0:1}" != "-" ]
|
||||||
then
|
then
|
||||||
# If not, enter in legacy mode and manage the arguments as positionnal ones..
|
# If not, enter in legacy mode and manage the arguments as positionnal ones..
|
||||||
# Dot not echo, to prevent to go through a helper output. But print only in the log.
|
# Dot not echo, to prevent to go through a helper output. But print only in the log.
|
||||||
set -x; echo "! Helper used in legacy mode !" > /dev/null; set +x
|
set -x; echo "! Helper used in legacy mode !" > /dev/null; set +x
|
||||||
local i
|
local i
|
||||||
for i in `seq 0 $(( ${#arguments[@]} -1 ))`
|
for i in `seq 0 $(( ${#arguments[@]} -1 ))`
|
||||||
do
|
do
|
||||||
# Try to use legacy_args as a list of option_flag of the array args_array
|
# Try to use legacy_args as a list of option_flag of the array args_array
|
||||||
# Otherwise, fallback to getopts_parameters to get the option_flag. But an associative arrays isn't always sorted in the correct order...
|
# Otherwise, fallback to getopts_parameters to get the option_flag. But an associative arrays isn't always sorted in the correct order...
|
||||||
# Remove all ':' in getopts_parameters
|
# Remove all ':' in getopts_parameters
|
||||||
getopts_parameters=${legacy_args:-${getopts_parameters//:}}
|
getopts_parameters=${legacy_args:-${getopts_parameters//:}}
|
||||||
# Get the option_flag from getopts_parameters, by using the option_flag according to the position of the argument.
|
# Get the option_flag from getopts_parameters, by using the option_flag according to the position of the argument.
|
||||||
option_flag=${getopts_parameters:$i:1}
|
option_flag=${getopts_parameters:$i:1}
|
||||||
if [ -z "$option_flag" ]; then
|
if [ -z "$option_flag" ]; then
|
||||||
ynh_print_warn --message="Too many arguments ! \"${arguments[$i]}\" will be ignored."
|
ynh_print_warn --message="Too many arguments ! \"${arguments[$i]}\" will be ignored."
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
# Use the long option, corresponding to the option_flag, as a variable
|
# Use the long option, corresponding to the option_flag, as a variable
|
||||||
# (e.g. for [u]=user, 'user' will be used as a variable)
|
# (e.g. for [u]=user, 'user' will be used as a variable)
|
||||||
# Also, remove '=' at the end of the long option
|
# Also, remove '=' at the end of the long option
|
||||||
# The variable name will be stored in 'option_var'
|
# The variable name will be stored in 'option_var'
|
||||||
local option_var="${args_array[$option_flag]%=}"
|
local option_var="${args_array[$option_flag]%=}"
|
||||||
|
|
||||||
# Store each value given as argument in the corresponding variable
|
# Store each value given as argument in the corresponding variable
|
||||||
# The values will be stored in the same order than $args_array
|
# The values will be stored in the same order than $args_array
|
||||||
eval ${option_var}+='"${arguments[$i]}"'
|
eval ${option_var}+='"${arguments[$i]}"'
|
||||||
done
|
done
|
||||||
unset legacy_args
|
unset legacy_args
|
||||||
else
|
else
|
||||||
# END LEGACY MODE
|
# END LEGACY MODE
|
||||||
# Call parse_arg and pass the modified list of args as an array of arguments.
|
# Call parse_arg and pass the modified list of args as an array of arguments.
|
||||||
parse_arg "${arguments[@]}"
|
parse_arg "${arguments[@]}"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
set -x
|
set -x
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,58 +8,58 @@
|
||||||
# | arg: -s, --ignore_swap - Ignore swap, consider only real RAM
|
# | arg: -s, --ignore_swap - Ignore swap, consider only real RAM
|
||||||
# | arg: -o, --only_swap - Ignore real RAM, consider only swap
|
# | arg: -o, --only_swap - Ignore real RAM, consider only swap
|
||||||
ynh_get_ram () {
|
ynh_get_ram () {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=ftso
|
local legacy_args=ftso
|
||||||
local -A args_array=( [f]=free [t]=total [s]=ignore_swap [o]=only_swap )
|
local -A args_array=( [f]=free [t]=total [s]=ignore_swap [o]=only_swap )
|
||||||
local free
|
local free
|
||||||
local total
|
local total
|
||||||
local ignore_swap
|
local ignore_swap
|
||||||
local only_swap
|
local only_swap
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
ignore_swap=${ignore_swap:-0}
|
ignore_swap=${ignore_swap:-0}
|
||||||
only_swap=${only_swap:-0}
|
only_swap=${only_swap:-0}
|
||||||
free=${free:-0}
|
free=${free:-0}
|
||||||
total=${total:-0}
|
total=${total:-0}
|
||||||
|
|
||||||
local total_ram=$(vmstat --stats --unit M | grep "total memory" | awk '{print $1}')
|
local total_ram=$(vmstat --stats --unit M | grep "total memory" | awk '{print $1}')
|
||||||
local total_swap=$(vmstat --stats --unit M | grep "total swap" | awk '{print $1}')
|
local total_swap=$(vmstat --stats --unit M | grep "total swap" | awk '{print $1}')
|
||||||
local total_ram_swap=$(( total_ram + total_swap ))
|
local total_ram_swap=$(( total_ram + total_swap ))
|
||||||
|
|
||||||
local free_ram=$(vmstat --stats --unit M | grep "free memory" | awk '{print $1}')
|
local free_ram=$(vmstat --stats --unit M | grep "free memory" | awk '{print $1}')
|
||||||
local free_swap=$(vmstat --stats --unit M | grep "free swap" | awk '{print $1}')
|
local free_swap=$(vmstat --stats --unit M | grep "free swap" | awk '{print $1}')
|
||||||
local free_ram_swap=$(( free_ram + free_swap ))
|
local free_ram_swap=$(( free_ram + free_swap ))
|
||||||
|
|
||||||
# Use the total amount of ram
|
# Use the total amount of ram
|
||||||
if [ $free -eq 1 ]
|
if [ $free -eq 1 ]
|
||||||
then
|
then
|
||||||
# Use the total amount of free ram
|
# Use the total amount of free ram
|
||||||
local ram=$free_ram_swap
|
local ram=$free_ram_swap
|
||||||
if [ $ignore_swap -eq 1 ]
|
if [ $ignore_swap -eq 1 ]
|
||||||
then
|
then
|
||||||
# Use only the amount of free ram
|
# Use only the amount of free ram
|
||||||
ram=$free_ram
|
ram=$free_ram
|
||||||
elif [ $only_swap -eq 1 ]
|
elif [ $only_swap -eq 1 ]
|
||||||
then
|
then
|
||||||
# Use only the amount of free swap
|
# Use only the amount of free swap
|
||||||
ram=$free_swap
|
ram=$free_swap
|
||||||
fi
|
fi
|
||||||
elif [ $total -eq 1 ]
|
elif [ $total -eq 1 ]
|
||||||
then
|
then
|
||||||
local ram=$total_ram_swap
|
local ram=$total_ram_swap
|
||||||
if [ $ignore_swap -eq 1 ]
|
if [ $ignore_swap -eq 1 ]
|
||||||
then
|
then
|
||||||
# Use only the amount of free ram
|
# Use only the amount of free ram
|
||||||
ram=$total_ram
|
ram=$total_ram
|
||||||
elif [ $only_swap -eq 1 ]
|
elif [ $only_swap -eq 1 ]
|
||||||
then
|
then
|
||||||
# Use only the amount of free swap
|
# Use only the amount of free swap
|
||||||
ram=$total_swap
|
ram=$total_swap
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
ynh_print_warn --message="You have to choose --free or --total when using ynh_get_ram"
|
ynh_print_warn --message="You have to choose --free or --total when using ynh_get_ram"
|
||||||
ram=0
|
ram=0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo $ram
|
echo $ram
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,16 +6,16 @@
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.4.0 or higher.
|
# Requires YunoHost version 2.4.0 or higher.
|
||||||
ynh_die() {
|
ynh_die() {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=mc
|
local legacy_args=mc
|
||||||
local -A args_array=( [m]=message= [c]=ret_code= )
|
local -A args_array=( [m]=message= [c]=ret_code= )
|
||||||
local message
|
local message
|
||||||
local ret_code
|
local ret_code
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
|
|
||||||
echo "$message" 1>&2
|
echo "$message" 1>&2
|
||||||
exit "${ret_code:-1}"
|
exit "${ret_code:-1}"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Display a message in the 'INFO' logging category
|
# Display a message in the 'INFO' logging category
|
||||||
|
@ -45,12 +45,12 @@ ynh_print_info() {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.6.4 or higher.
|
# Requires YunoHost version 2.6.4 or higher.
|
||||||
ynh_no_log() {
|
ynh_no_log() {
|
||||||
local ynh_cli_log=/var/log/yunohost/yunohost-cli.log
|
local ynh_cli_log=/var/log/yunohost/yunohost-cli.log
|
||||||
cp -a ${ynh_cli_log} ${ynh_cli_log}-move
|
cp -a ${ynh_cli_log} ${ynh_cli_log}-move
|
||||||
eval $@
|
eval $@
|
||||||
local exit_code=$?
|
local exit_code=$?
|
||||||
mv ${ynh_cli_log}-move ${ynh_cli_log}
|
mv ${ynh_cli_log}-move ${ynh_cli_log}
|
||||||
return $?
|
return $?
|
||||||
}
|
}
|
||||||
|
|
||||||
# Main printer, just in case in the future we have to change anything about that.
|
# Main printer, just in case in the future we have to change anything about that.
|
||||||
|
@ -59,7 +59,7 @@ ynh_no_log() {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 3.2.0 or higher.
|
# Requires YunoHost version 3.2.0 or higher.
|
||||||
ynh_print_log () {
|
ynh_print_log () {
|
||||||
echo -e "${1}"
|
echo -e "${1}"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Print a warning on stderr
|
# Print a warning on stderr
|
||||||
|
@ -69,14 +69,14 @@ ynh_print_log () {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 3.2.0 or higher.
|
# Requires YunoHost version 3.2.0 or higher.
|
||||||
ynh_print_warn () {
|
ynh_print_warn () {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=m
|
local legacy_args=m
|
||||||
local -A args_array=( [m]=message= )
|
local -A args_array=( [m]=message= )
|
||||||
local message
|
local message
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
|
|
||||||
ynh_print_log "\e[93m\e[1m[WARN]\e[0m ${message}" >&2
|
ynh_print_log "\e[93m\e[1m[WARN]\e[0m ${message}" >&2
|
||||||
}
|
}
|
||||||
|
|
||||||
# Print an error on stderr
|
# Print an error on stderr
|
||||||
|
@ -86,14 +86,14 @@ ynh_print_warn () {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 3.2.0 or higher.
|
# Requires YunoHost version 3.2.0 or higher.
|
||||||
ynh_print_err () {
|
ynh_print_err () {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=m
|
local legacy_args=m
|
||||||
local -A args_array=( [m]=message= )
|
local -A args_array=( [m]=message= )
|
||||||
local message
|
local message
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
|
|
||||||
ynh_print_log "\e[91m\e[1m[ERR]\e[0m ${message}" >&2
|
ynh_print_log "\e[91m\e[1m[ERR]\e[0m ${message}" >&2
|
||||||
}
|
}
|
||||||
|
|
||||||
# Execute a command and print the result as an error
|
# Execute a command and print the result as an error
|
||||||
|
@ -109,7 +109,7 @@ ynh_print_err () {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 3.2.0 or higher.
|
# Requires YunoHost version 3.2.0 or higher.
|
||||||
ynh_exec_err () {
|
ynh_exec_err () {
|
||||||
ynh_print_err "$(eval $@)"
|
ynh_print_err "$(eval $@)"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Execute a command and print the result as a warning
|
# Execute a command and print the result as a warning
|
||||||
|
@ -125,7 +125,7 @@ ynh_exec_err () {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 3.2.0 or higher.
|
# Requires YunoHost version 3.2.0 or higher.
|
||||||
ynh_exec_warn () {
|
ynh_exec_warn () {
|
||||||
ynh_print_warn "$(eval $@)"
|
ynh_print_warn "$(eval $@)"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Execute a command and force the result to be printed on stdout
|
# Execute a command and force the result to be printed on stdout
|
||||||
|
@ -141,7 +141,7 @@ ynh_exec_warn () {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 3.2.0 or higher.
|
# Requires YunoHost version 3.2.0 or higher.
|
||||||
ynh_exec_warn_less () {
|
ynh_exec_warn_less () {
|
||||||
eval $@ 2>&1
|
eval $@ 2>&1
|
||||||
}
|
}
|
||||||
|
|
||||||
# Execute a command and redirect stdout in /dev/null
|
# Execute a command and redirect stdout in /dev/null
|
||||||
|
@ -157,7 +157,7 @@ ynh_exec_warn_less () {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 3.2.0 or higher.
|
# Requires YunoHost version 3.2.0 or higher.
|
||||||
ynh_exec_quiet () {
|
ynh_exec_quiet () {
|
||||||
eval $@ > /dev/null
|
eval $@ > /dev/null
|
||||||
}
|
}
|
||||||
|
|
||||||
# Execute a command and redirect stdout and stderr in /dev/null
|
# Execute a command and redirect stdout and stderr in /dev/null
|
||||||
|
@ -173,7 +173,7 @@ ynh_exec_quiet () {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 3.2.0 or higher.
|
# Requires YunoHost version 3.2.0 or higher.
|
||||||
ynh_exec_fully_quiet () {
|
ynh_exec_fully_quiet () {
|
||||||
eval $@ > /dev/null 2>&1
|
eval $@ > /dev/null 2>&1
|
||||||
}
|
}
|
||||||
|
|
||||||
# Remove any logs for all the following commands.
|
# Remove any logs for all the following commands.
|
||||||
|
@ -184,7 +184,7 @@ ynh_exec_fully_quiet () {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 3.2.0 or higher.
|
# Requires YunoHost version 3.2.0 or higher.
|
||||||
ynh_print_OFF () {
|
ynh_print_OFF () {
|
||||||
exec {BASH_XTRACEFD}>/dev/null
|
exec {BASH_XTRACEFD}>/dev/null
|
||||||
}
|
}
|
||||||
|
|
||||||
# Restore the logging after ynh_print_OFF
|
# Restore the logging after ynh_print_OFF
|
||||||
|
@ -193,9 +193,9 @@ ynh_print_OFF () {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 3.2.0 or higher.
|
# Requires YunoHost version 3.2.0 or higher.
|
||||||
ynh_print_ON () {
|
ynh_print_ON () {
|
||||||
exec {BASH_XTRACEFD}>&1
|
exec {BASH_XTRACEFD}>&1
|
||||||
# Print an echo only for the log, to be able to know that ynh_print_ON has been called.
|
# Print an echo only for the log, to be able to know that ynh_print_ON has been called.
|
||||||
echo ynh_print_ON > /dev/null
|
echo ynh_print_ON > /dev/null
|
||||||
}
|
}
|
||||||
|
|
||||||
# Initial definitions for ynh_script_progression
|
# Initial definitions for ynh_script_progression
|
||||||
|
@ -221,81 +221,81 @@ base_time=$(date +%s)
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 3.5.0 or higher.
|
# Requires YunoHost version 3.5.0 or higher.
|
||||||
ynh_script_progression () {
|
ynh_script_progression () {
|
||||||
set +x
|
set +x
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=mwtl
|
local legacy_args=mwtl
|
||||||
local -A args_array=( [m]=message= [w]=weight= [t]=time [l]=last )
|
local -A args_array=( [m]=message= [w]=weight= [t]=time [l]=last )
|
||||||
local message
|
local message
|
||||||
local weight
|
local weight
|
||||||
local time
|
local time
|
||||||
local last
|
local last
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
set +x
|
set +x
|
||||||
weight=${weight:-1}
|
weight=${weight:-1}
|
||||||
time=${time:-0}
|
time=${time:-0}
|
||||||
last=${last:-0}
|
last=${last:-0}
|
||||||
|
|
||||||
# Get execution time since the last $base_time
|
# Get execution time since the last $base_time
|
||||||
local exec_time=$(( $(date +%s) - $base_time ))
|
local exec_time=$(( $(date +%s) - $base_time ))
|
||||||
base_time=$(date +%s)
|
base_time=$(date +%s)
|
||||||
|
|
||||||
# Compute $max_progression (if we didn't already)
|
# Compute $max_progression (if we didn't already)
|
||||||
if [ "$max_progression" = -1 ]
|
if [ "$max_progression" = -1 ]
|
||||||
then
|
then
|
||||||
# Get the number of occurrences of 'ynh_script_progression' in the script. Except those are commented.
|
# Get the number of occurrences of 'ynh_script_progression' in the script. Except those are commented.
|
||||||
local helper_calls="$(grep --count "^[^#]*ynh_script_progression" $0)"
|
local helper_calls="$(grep --count "^[^#]*ynh_script_progression" $0)"
|
||||||
# Get the number of call with a weight value
|
# Get the number of call with a weight value
|
||||||
local weight_calls=$(grep --perl-regexp --count "^[^#]*ynh_script_progression.*(--weight|-w )" $0)
|
local weight_calls=$(grep --perl-regexp --count "^[^#]*ynh_script_progression.*(--weight|-w )" $0)
|
||||||
|
|
||||||
# Get the weight of each occurrences of 'ynh_script_progression' in the script using --weight
|
# Get the weight of each occurrences of 'ynh_script_progression' in the script using --weight
|
||||||
local weight_valuesA="$(grep --perl-regexp "^[^#]*ynh_script_progression.*--weight" $0 | sed 's/.*--weight[= ]\([[:digit:]]*\).*/\1/g')"
|
local weight_valuesA="$(grep --perl-regexp "^[^#]*ynh_script_progression.*--weight" $0 | sed 's/.*--weight[= ]\([[:digit:]]*\).*/\1/g')"
|
||||||
# Get the weight of each occurrences of 'ynh_script_progression' in the script using -w
|
# Get the weight of each occurrences of 'ynh_script_progression' in the script using -w
|
||||||
local weight_valuesB="$(grep --perl-regexp "^[^#]*ynh_script_progression.*-w " $0 | sed 's/.*-w[= ]\([[:digit:]]*\).*/\1/g')"
|
local weight_valuesB="$(grep --perl-regexp "^[^#]*ynh_script_progression.*-w " $0 | sed 's/.*-w[= ]\([[:digit:]]*\).*/\1/g')"
|
||||||
# Each value will be on a different line.
|
# Each value will be on a different line.
|
||||||
# Remove each 'end of line' and replace it by a '+' to sum the values.
|
# Remove each 'end of line' and replace it by a '+' to sum the values.
|
||||||
local weight_values=$(( $(echo "$weight_valuesA" | tr '\n' '+') + $(echo "$weight_valuesB" | tr '\n' '+') 0 ))
|
local weight_values=$(( $(echo "$weight_valuesA" | tr '\n' '+') + $(echo "$weight_valuesB" | tr '\n' '+') 0 ))
|
||||||
|
|
||||||
# max_progression is a total number of calls to this helper.
|
# max_progression is a total number of calls to this helper.
|
||||||
# Less the number of calls with a weight value.
|
# Less the number of calls with a weight value.
|
||||||
# Plus the total of weight values
|
# Plus the total of weight values
|
||||||
max_progression=$(( $helper_calls - $weight_calls + $weight_values ))
|
max_progression=$(( $helper_calls - $weight_calls + $weight_values ))
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Increment each execution of ynh_script_progression in this script by the weight of the previous call.
|
# Increment each execution of ynh_script_progression in this script by the weight of the previous call.
|
||||||
increment_progression=$(( $increment_progression + $previous_weight ))
|
increment_progression=$(( $increment_progression + $previous_weight ))
|
||||||
# Store the weight of the current call in $previous_weight for next call
|
# Store the weight of the current call in $previous_weight for next call
|
||||||
previous_weight=$weight
|
previous_weight=$weight
|
||||||
|
|
||||||
# Reduce $increment_progression to the size of the scale
|
# Reduce $increment_progression to the size of the scale
|
||||||
if [ $last -eq 0 ]
|
if [ $last -eq 0 ]
|
||||||
then
|
then
|
||||||
local effective_progression=$(( $increment_progression * $progress_scale / $max_progression ))
|
local effective_progression=$(( $increment_progression * $progress_scale / $max_progression ))
|
||||||
# If last is specified, fill immediately the progression_bar
|
# If last is specified, fill immediately the progression_bar
|
||||||
else
|
else
|
||||||
local effective_progression=$progress_scale
|
local effective_progression=$progress_scale
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Build $progression_bar from progress_string(0,1,2) according to $effective_progression and the weight of the current task
|
# Build $progression_bar from progress_string(0,1,2) according to $effective_progression and the weight of the current task
|
||||||
# expected_progression is the progression expected after the current task
|
# expected_progression is the progression expected after the current task
|
||||||
local expected_progression="$(( ( $increment_progression + $weight ) * $progress_scale / $max_progression - $effective_progression ))"
|
local expected_progression="$(( ( $increment_progression + $weight ) * $progress_scale / $max_progression - $effective_progression ))"
|
||||||
if [ $last -eq 1 ]
|
if [ $last -eq 1 ]
|
||||||
then
|
then
|
||||||
expected_progression=0
|
expected_progression=0
|
||||||
fi
|
fi
|
||||||
# left_progression is the progression not yet done
|
# left_progression is the progression not yet done
|
||||||
local left_progression="$(( $progress_scale - $effective_progression - $expected_progression ))"
|
local left_progression="$(( $progress_scale - $effective_progression - $expected_progression ))"
|
||||||
# Build the progression bar with $effective_progression, work done, $expected_progression, current work and $left_progression, work to be done.
|
# Build the progression bar with $effective_progression, work done, $expected_progression, current work and $left_progression, work to be done.
|
||||||
local progression_bar="${progress_string2:0:$effective_progression}${progress_string1:0:$expected_progression}${progress_string0:0:$left_progression}"
|
local progression_bar="${progress_string2:0:$effective_progression}${progress_string1:0:$expected_progression}${progress_string0:0:$left_progression}"
|
||||||
|
|
||||||
local print_exec_time=""
|
local print_exec_time=""
|
||||||
if [ $time -eq 1 ]
|
if [ $time -eq 1 ]
|
||||||
then
|
then
|
||||||
print_exec_time=" [$(date +%Hh%Mm,%Ss --date="0 + $exec_time sec")]"
|
print_exec_time=" [$(date +%Hh%Mm,%Ss --date="0 + $exec_time sec")]"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ynh_print_info "[$progression_bar] > ${message}${print_exec_time}"
|
ynh_print_info "[$progression_bar] > ${message}${print_exec_time}"
|
||||||
set -x
|
set -x
|
||||||
}
|
}
|
||||||
|
|
||||||
# Return data to the Yunohost core for later processing
|
# Return data to the Yunohost core for later processing
|
||||||
|
@ -316,49 +316,49 @@ ynh_return () {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 3.5.0 or higher.
|
# Requires YunoHost version 3.5.0 or higher.
|
||||||
ynh_debug () {
|
ynh_debug () {
|
||||||
# Disable set xtrace for the helper itself, to not pollute the debug log
|
# Disable set xtrace for the helper itself, to not pollute the debug log
|
||||||
set +x
|
set +x
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=mt
|
local legacy_args=mt
|
||||||
local -A args_array=( [m]=message= [t]=trace= )
|
local -A args_array=( [m]=message= [t]=trace= )
|
||||||
local message
|
local message
|
||||||
local trace
|
local trace
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
# Redisable xtrace, ynh_handle_getopts_args set it back
|
# Redisable xtrace, ynh_handle_getopts_args set it back
|
||||||
set +x
|
set +x
|
||||||
message=${message:-}
|
message=${message:-}
|
||||||
trace=${trace:-}
|
trace=${trace:-}
|
||||||
|
|
||||||
if [ -n "$message" ]
|
if [ -n "$message" ]
|
||||||
then
|
then
|
||||||
ynh_print_log "\e[34m\e[1m[DEBUG]\e[0m ${message}" >&2
|
ynh_print_log "\e[34m\e[1m[DEBUG]\e[0m ${message}" >&2
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$trace" == "1" ]
|
if [ "$trace" == "1" ]
|
||||||
then
|
then
|
||||||
ynh_debug --message="Enable debugging"
|
ynh_debug --message="Enable debugging"
|
||||||
set +x
|
set +x
|
||||||
# Get the current file descriptor of xtrace
|
# Get the current file descriptor of xtrace
|
||||||
old_bash_xtracefd=$BASH_XTRACEFD
|
old_bash_xtracefd=$BASH_XTRACEFD
|
||||||
# Add the current file name and the line number of any command currently running while tracing.
|
# Add the current file name and the line number of any command currently running while tracing.
|
||||||
PS4='$(basename ${BASH_SOURCE[0]})-L${LINENO}: '
|
PS4='$(basename ${BASH_SOURCE[0]})-L${LINENO}: '
|
||||||
# Force xtrace to stderr
|
# Force xtrace to stderr
|
||||||
BASH_XTRACEFD=2
|
BASH_XTRACEFD=2
|
||||||
# Force stdout to stderr
|
# Force stdout to stderr
|
||||||
exec 1>&2
|
exec 1>&2
|
||||||
fi
|
fi
|
||||||
if [ "$trace" == "0" ]
|
if [ "$trace" == "0" ]
|
||||||
then
|
then
|
||||||
ynh_debug --message="Disable debugging"
|
ynh_debug --message="Disable debugging"
|
||||||
set +x
|
set +x
|
||||||
# Put xtrace back to its original fild descriptor
|
# Put xtrace back to its original fild descriptor
|
||||||
BASH_XTRACEFD=$old_bash_xtracefd
|
BASH_XTRACEFD=$old_bash_xtracefd
|
||||||
# Restore stdout
|
# Restore stdout
|
||||||
exec 1>&1
|
exec 1>&1
|
||||||
fi
|
fi
|
||||||
# Renable set xtrace
|
# Renable set xtrace
|
||||||
set -x
|
set -x
|
||||||
}
|
}
|
||||||
|
|
||||||
# Execute a command and print the result as debug
|
# Execute a command and print the result as debug
|
||||||
|
@ -374,5 +374,5 @@ ynh_debug () {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 3.5.0 or higher.
|
# Requires YunoHost version 3.5.0 or higher.
|
||||||
ynh_debug_exec () {
|
ynh_debug_exec () {
|
||||||
ynh_debug --message="$(eval $@)"
|
ynh_debug --message="$(eval $@)"
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,81 +17,81 @@
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.6.4 or higher.
|
# Requires YunoHost version 2.6.4 or higher.
|
||||||
ynh_use_logrotate () {
|
ynh_use_logrotate () {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=lnuya
|
local legacy_args=lnuya
|
||||||
local -A args_array=( [l]=logfile= [n]=nonappend [u]=specific_user= [y]=non [a]=append )
|
local -A args_array=( [l]=logfile= [n]=nonappend [u]=specific_user= [y]=non [a]=append )
|
||||||
# [y]=non [a]=append are only for legacy purpose, to not fail on the old option '--non-append'
|
# [y]=non [a]=append are only for legacy purpose, to not fail on the old option '--non-append'
|
||||||
local logfile
|
local logfile
|
||||||
local nonappend
|
local nonappend
|
||||||
local specific_user
|
local specific_user
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
local logfile="${logfile:-}"
|
local logfile="${logfile:-}"
|
||||||
local nonappend="${nonappend:-0}"
|
local nonappend="${nonappend:-0}"
|
||||||
local specific_user="${specific_user:-}"
|
local specific_user="${specific_user:-}"
|
||||||
|
|
||||||
# LEGACY CODE - PRE GETOPTS
|
# LEGACY CODE - PRE GETOPTS
|
||||||
if [ $# -gt 0 ] && [ "$1" == "--non-append" ]; then
|
if [ $# -gt 0 ] && [ "$1" == "--non-append" ]; then
|
||||||
nonappend=1
|
nonappend=1
|
||||||
# Destroy this argument for the next command.
|
# Destroy this argument for the next command.
|
||||||
shift
|
shift
|
||||||
elif [ $# -gt 1 ] && [ "$2" == "--non-append" ]; then
|
elif [ $# -gt 1 ] && [ "$2" == "--non-append" ]; then
|
||||||
nonappend=1
|
nonappend=1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $# -gt 0 ] && [ "$(echo ${1:0:1})" != "-" ]; then
|
if [ $# -gt 0 ] && [ "$(echo ${1:0:1})" != "-" ]; then
|
||||||
# If the given logfile parameter already exists as a file, or if it ends up with ".log",
|
# If the given logfile parameter already exists as a file, or if it ends up with ".log",
|
||||||
# we just want to manage a single file
|
# we just want to manage a single file
|
||||||
if [ -f "$1" ] || [ "$(echo ${1##*.})" == "log" ]; then
|
if [ -f "$1" ] || [ "$(echo ${1##*.})" == "log" ]; then
|
||||||
local logfile=$1
|
local logfile=$1
|
||||||
# Otherwise we assume we want to manage a directory and all its .log file inside
|
# Otherwise we assume we want to manage a directory and all its .log file inside
|
||||||
else
|
else
|
||||||
local logfile=$1/*.log
|
local logfile=$1/*.log
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
# LEGACY CODE
|
# LEGACY CODE
|
||||||
|
|
||||||
local customtee="tee -a"
|
local customtee="tee -a"
|
||||||
if [ "$nonappend" -eq 1 ]; then
|
if [ "$nonappend" -eq 1 ]; then
|
||||||
customtee="tee"
|
customtee="tee"
|
||||||
fi
|
fi
|
||||||
if [ -n "$logfile" ]
|
if [ -n "$logfile" ]
|
||||||
then
|
then
|
||||||
if [ ! -f "$1" ] && [ "$(echo ${logfile##*.})" != "log" ]; then # Keep only the extension to check if it's a logfile
|
if [ ! -f "$1" ] && [ "$(echo ${logfile##*.})" != "log" ]; then # Keep only the extension to check if it's a logfile
|
||||||
local logfile="$logfile/*.log" # Else, uses the directory and all logfile into it.
|
local logfile="$logfile/*.log" # Else, uses the directory and all logfile into it.
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
logfile="/var/log/${app}/*.log" # Without argument, use a defaut directory in /var/log
|
logfile="/var/log/${app}/*.log" # Without argument, use a defaut directory in /var/log
|
||||||
fi
|
fi
|
||||||
local su_directive=""
|
local su_directive=""
|
||||||
if [[ -n $specific_user ]]; then
|
if [[ -n $specific_user ]]; then
|
||||||
su_directive=" # Run logorotate as specific user - group
|
su_directive=" # Run logorotate as specific user - group
|
||||||
su ${specific_user%/*} ${specific_user#*/}"
|
su ${specific_user%/*} ${specific_user#*/}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cat > ./${app}-logrotate << EOF # Build a config file for logrotate
|
cat > ./${app}-logrotate << EOF # Build a config file for logrotate
|
||||||
$logfile {
|
$logfile {
|
||||||
# Rotate if the logfile exceeds 100Mo
|
# Rotate if the logfile exceeds 100Mo
|
||||||
size 100M
|
size 100M
|
||||||
# Keep 12 old log maximum
|
# Keep 12 old log maximum
|
||||||
rotate 12
|
rotate 12
|
||||||
# Compress the logs with gzip
|
# Compress the logs with gzip
|
||||||
compress
|
compress
|
||||||
# Compress the log at the next cycle. So keep always 2 non compressed logs
|
# Compress the log at the next cycle. So keep always 2 non compressed logs
|
||||||
delaycompress
|
delaycompress
|
||||||
# Copy and truncate the log to allow to continue write on it. Instead of move the log.
|
# Copy and truncate the log to allow to continue write on it. Instead of move the log.
|
||||||
copytruncate
|
copytruncate
|
||||||
# Do not do an error if the log is missing
|
# Do not do an error if the log is missing
|
||||||
missingok
|
missingok
|
||||||
# Not rotate if the log is empty
|
# Not rotate if the log is empty
|
||||||
notifempty
|
notifempty
|
||||||
# Keep old logs in the same dir
|
# Keep old logs in the same dir
|
||||||
noolddir
|
noolddir
|
||||||
$su_directive
|
$su_directive
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
mkdir -p $(dirname "$logfile") # Create the log directory, if not exist
|
mkdir -p $(dirname "$logfile") # Create the log directory, if not exist
|
||||||
cat ${app}-logrotate | $customtee /etc/logrotate.d/$app > /dev/null # Append this config to the existing config file, or replace the whole config file (depending on $customtee)
|
cat ${app}-logrotate | $customtee /etc/logrotate.d/$app > /dev/null # Append this config to the existing config file, or replace the whole config file (depending on $customtee)
|
||||||
}
|
}
|
||||||
|
|
||||||
# Remove the app's logrotate config.
|
# Remove the app's logrotate config.
|
||||||
|
@ -100,7 +100,7 @@ EOF
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.6.4 or higher.
|
# Requires YunoHost version 2.6.4 or higher.
|
||||||
ynh_remove_logrotate () {
|
ynh_remove_logrotate () {
|
||||||
if [ -e "/etc/logrotate.d/$app" ]; then
|
if [ -e "/etc/logrotate.d/$app" ]; then
|
||||||
rm "/etc/logrotate.d/$app"
|
rm "/etc/logrotate.d/$app"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
|
@ -151,19 +151,19 @@ ynh_mysql_create_user() {
|
||||||
# Requires YunoHost version 2.2.4 or higher.
|
# Requires YunoHost version 2.2.4 or higher.
|
||||||
ynh_mysql_user_exists()
|
ynh_mysql_user_exists()
|
||||||
{
|
{
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=u
|
local legacy_args=u
|
||||||
local -A args_array=( [u]=user= )
|
local -A args_array=( [u]=user= )
|
||||||
local user
|
local user
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
|
|
||||||
if [[ -z $(ynh_mysql_execute_as_root --sql="SELECT User from mysql.user WHERE User = '$user';") ]]
|
if [[ -z $(ynh_mysql_execute_as_root --sql="SELECT User from mysql.user WHERE User = '$user';") ]]
|
||||||
then
|
then
|
||||||
return 1
|
return 1
|
||||||
else
|
else
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Drop a user
|
# Drop a user
|
||||||
|
@ -190,21 +190,21 @@ ynh_mysql_drop_user() {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.6.4 or higher.
|
# Requires YunoHost version 2.6.4 or higher.
|
||||||
ynh_mysql_setup_db () {
|
ynh_mysql_setup_db () {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=unp
|
local legacy_args=unp
|
||||||
local -A args_array=( [u]=db_user= [n]=db_name= [p]=db_pwd= )
|
local -A args_array=( [u]=db_user= [n]=db_name= [p]=db_pwd= )
|
||||||
local db_user
|
local db_user
|
||||||
local db_name
|
local db_name
|
||||||
db_pwd=""
|
db_pwd=""
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
|
|
||||||
local new_db_pwd=$(ynh_string_random) # Generate a random password
|
local new_db_pwd=$(ynh_string_random) # Generate a random password
|
||||||
# If $db_pwd is not provided, use new_db_pwd instead for db_pwd
|
# If $db_pwd is not provided, use new_db_pwd instead for db_pwd
|
||||||
db_pwd="${db_pwd:-$new_db_pwd}"
|
db_pwd="${db_pwd:-$new_db_pwd}"
|
||||||
|
|
||||||
ynh_mysql_create_db "$db_name" "$db_user" "$db_pwd" # Create the database
|
ynh_mysql_create_db "$db_name" "$db_user" "$db_pwd" # Create the database
|
||||||
ynh_app_setting_set --app=$app --key=mysqlpwd --value=$db_pwd # Store the password in the app's config
|
ynh_app_setting_set --app=$app --key=mysqlpwd --value=$db_pwd # Store the password in the app's config
|
||||||
}
|
}
|
||||||
|
|
||||||
# Remove a database if it exists, and the associated user
|
# Remove a database if it exists, and the associated user
|
||||||
|
@ -215,24 +215,23 @@ ynh_mysql_setup_db () {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.6.4 or higher.
|
# Requires YunoHost version 2.6.4 or higher.
|
||||||
ynh_mysql_remove_db () {
|
ynh_mysql_remove_db () {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=un
|
local legacy_args=un
|
||||||
local -A args_array=( [u]=db_user= [n]=db_name= )
|
local -A args_array=( [u]=db_user= [n]=db_name= )
|
||||||
local db_user
|
local db_user
|
||||||
local db_name
|
local db_name
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
|
|
||||||
local mysql_root_password=$(cat $MYSQL_ROOT_PWD_FILE)
|
local mysql_root_password=$(cat $MYSQL_ROOT_PWD_FILE)
|
||||||
if mysqlshow -u root -p$mysql_root_password | grep -q "^| $db_name"; then # Check if the database exists
|
if mysqlshow -u root -p$mysql_root_password | grep -q "^| $db_name"; then # Check if the database exists
|
||||||
ynh_mysql_drop_db $db_name # Remove the database
|
ynh_mysql_drop_db $db_name # Remove the database
|
||||||
else
|
else
|
||||||
ynh_print_warn --message="Database $db_name not found"
|
ynh_print_warn --message="Database $db_name not found"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Remove mysql user if it exists
|
# Remove mysql user if it exists
|
||||||
if ynh_mysql_user_exists --user=$db_user; then
|
if ynh_mysql_user_exists --user=$db_user; then
|
||||||
ynh_mysql_drop_user $db_user
|
ynh_mysql_drop_user $db_user
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,19 +9,19 @@
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.6.4 or higher.
|
# Requires YunoHost version 2.6.4 or higher.
|
||||||
ynh_find_port () {
|
ynh_find_port () {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=p
|
local legacy_args=p
|
||||||
local -A args_array=( [p]=port= )
|
local -A args_array=( [p]=port= )
|
||||||
local port
|
local port
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
|
|
||||||
test -n "$port" || ynh_die --message="The argument of ynh_find_port must be a valid port."
|
test -n "$port" || ynh_die --message="The argument of ynh_find_port must be a valid port."
|
||||||
while ss -nltu | awk '{print$5}' | grep -q -E ":$port$" # Check if the port is free
|
while ss -nltu | awk '{print$5}' | grep -q -E ":$port$" # Check if the port is free
|
||||||
do
|
do
|
||||||
port=$((port+1)) # Else, pass to next port
|
port=$((port+1)) # Else, pass to next port
|
||||||
done
|
done
|
||||||
echo $port
|
echo $port
|
||||||
}
|
}
|
||||||
|
|
||||||
# Test if a port is available
|
# Test if a port is available
|
||||||
|
@ -33,12 +33,12 @@ ynh_find_port () {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 3.7.x or higher.
|
# Requires YunoHost version 3.7.x or higher.
|
||||||
ynh_port_available () {
|
ynh_port_available () {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=p
|
local legacy_args=p
|
||||||
local -A args_array=( [p]=port= )
|
local -A args_array=( [p]=port= )
|
||||||
local port
|
local port
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
|
|
||||||
if ss -nltu | grep -q -w :$port
|
if ss -nltu | grep -q -w :$port
|
||||||
then
|
then
|
||||||
|
@ -59,17 +59,17 @@ ynh_port_available () {
|
||||||
# Requires YunoHost version 2.2.4 or higher.
|
# Requires YunoHost version 2.2.4 or higher.
|
||||||
ynh_validate_ip()
|
ynh_validate_ip()
|
||||||
{
|
{
|
||||||
# http://stackoverflow.com/questions/319279/how-to-validate-ip-address-in-python#319298
|
# http://stackoverflow.com/questions/319279/how-to-validate-ip-address-in-python#319298
|
||||||
|
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=fi
|
local legacy_args=fi
|
||||||
local -A args_array=( [f]=family= [i]=ip_address= )
|
local -A args_array=( [f]=family= [i]=ip_address= )
|
||||||
local family
|
local family
|
||||||
local ip_address
|
local ip_address
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
|
|
||||||
[ "$family" == "4" ] || [ "$family" == "6" ] || return 1
|
[ "$family" == "4" ] || [ "$family" == "6" ] || return 1
|
||||||
|
|
||||||
python /dev/stdin << EOF
|
python /dev/stdin << EOF
|
||||||
import socket
|
import socket
|
||||||
|
@ -93,14 +93,14 @@ EOF
|
||||||
# Requires YunoHost version 2.2.4 or higher.
|
# Requires YunoHost version 2.2.4 or higher.
|
||||||
ynh_validate_ip4()
|
ynh_validate_ip4()
|
||||||
{
|
{
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=i
|
local legacy_args=i
|
||||||
local -A args_array=( [i]=ip_address= )
|
local -A args_array=( [i]=ip_address= )
|
||||||
local ip_address
|
local ip_address
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
|
|
||||||
ynh_validate_ip 4 $ip_address
|
ynh_validate_ip 4 $ip_address
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -114,12 +114,12 @@ ynh_validate_ip4()
|
||||||
# Requires YunoHost version 2.2.4 or higher.
|
# Requires YunoHost version 2.2.4 or higher.
|
||||||
ynh_validate_ip6()
|
ynh_validate_ip6()
|
||||||
{
|
{
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=i
|
local legacy_args=i
|
||||||
local -A args_array=( [i]=ip_address= )
|
local -A args_array=( [i]=ip_address= )
|
||||||
local ip_address
|
local ip_address
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
|
|
||||||
ynh_validate_ip 6 $ip_address
|
ynh_validate_ip 6 $ip_address
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,51 +20,51 @@
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.7.2 or higher.
|
# Requires YunoHost version 2.7.2 or higher.
|
||||||
ynh_add_nginx_config () {
|
ynh_add_nginx_config () {
|
||||||
finalnginxconf="/etc/nginx/conf.d/$domain.d/$app.conf"
|
finalnginxconf="/etc/nginx/conf.d/$domain.d/$app.conf"
|
||||||
local others_var=${1:-}
|
local others_var=${1:-}
|
||||||
ynh_backup_if_checksum_is_different --file="$finalnginxconf"
|
ynh_backup_if_checksum_is_different --file="$finalnginxconf"
|
||||||
cp ../conf/nginx.conf "$finalnginxconf"
|
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.
|
# 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
|
# Substitute in a nginx config file only if the variable is not empty
|
||||||
if test -n "${path_url:-}"; then
|
if test -n "${path_url:-}"; then
|
||||||
# path_url_slash_less is path_url, or a blank value if path_url is only '/'
|
# path_url_slash_less is path_url, or a blank value if path_url is only '/'
|
||||||
local path_url_slash_less=${path_url%/}
|
local path_url_slash_less=${path_url%/}
|
||||||
ynh_replace_string --match_string="__PATH__/" --replace_string="$path_url_slash_less/" --target_file="$finalnginxconf"
|
ynh_replace_string --match_string="__PATH__/" --replace_string="$path_url_slash_less/" --target_file="$finalnginxconf"
|
||||||
ynh_replace_string --match_string="__PATH__" --replace_string="$path_url" --target_file="$finalnginxconf"
|
ynh_replace_string --match_string="__PATH__" --replace_string="$path_url" --target_file="$finalnginxconf"
|
||||||
fi
|
fi
|
||||||
if test -n "${domain:-}"; then
|
if test -n "${domain:-}"; then
|
||||||
ynh_replace_string --match_string="__DOMAIN__" --replace_string="$domain" --target_file="$finalnginxconf"
|
ynh_replace_string --match_string="__DOMAIN__" --replace_string="$domain" --target_file="$finalnginxconf"
|
||||||
fi
|
fi
|
||||||
if test -n "${port:-}"; then
|
if test -n "${port:-}"; then
|
||||||
ynh_replace_string --match_string="__PORT__" --replace_string="$port" --target_file="$finalnginxconf"
|
ynh_replace_string --match_string="__PORT__" --replace_string="$port" --target_file="$finalnginxconf"
|
||||||
fi
|
fi
|
||||||
if test -n "${app:-}"; then
|
if test -n "${app:-}"; then
|
||||||
ynh_replace_string --match_string="__NAME__" --replace_string="$app" --target_file="$finalnginxconf"
|
ynh_replace_string --match_string="__NAME__" --replace_string="$app" --target_file="$finalnginxconf"
|
||||||
fi
|
fi
|
||||||
if test -n "${final_path:-}"; then
|
if test -n "${final_path:-}"; then
|
||||||
ynh_replace_string --match_string="__FINALPATH__" --replace_string="$final_path" --target_file="$finalnginxconf"
|
ynh_replace_string --match_string="__FINALPATH__" --replace_string="$final_path" --target_file="$finalnginxconf"
|
||||||
fi
|
fi
|
||||||
ynh_replace_string --match_string="__PHPVERSION__" --replace_string="$YNH_PHP_VERSION" --target_file="$finalnginxconf"
|
ynh_replace_string --match_string="__PHPVERSION__" --replace_string="$YNH_PHP_VERSION" --target_file="$finalnginxconf"
|
||||||
|
|
||||||
# Replace all other variable given as arguments
|
# Replace all other variable given as arguments
|
||||||
for var_to_replace in $others_var
|
for var_to_replace in $others_var
|
||||||
do
|
do
|
||||||
# ${var_to_replace^^} make the content of the variable on upper-cases
|
# ${var_to_replace^^} make the content of the variable on upper-cases
|
||||||
# ${!var_to_replace} get the content of the variable named $var_to_replace
|
# ${!var_to_replace} get the content of the variable named $var_to_replace
|
||||||
ynh_replace_string --match_string="__${var_to_replace^^}__" --replace_string="${!var_to_replace}" --target_file="$finalnginxconf"
|
ynh_replace_string --match_string="__${var_to_replace^^}__" --replace_string="${!var_to_replace}" --target_file="$finalnginxconf"
|
||||||
done
|
done
|
||||||
|
|
||||||
if [ "${path_url:-}" != "/" ]
|
|
||||||
then
|
|
||||||
ynh_replace_string --match_string="^#sub_path_only" --replace_string="" --target_file="$finalnginxconf"
|
|
||||||
else
|
|
||||||
ynh_replace_string --match_string="^#root_path_only" --replace_string="" --target_file="$finalnginxconf"
|
|
||||||
fi
|
|
||||||
|
|
||||||
ynh_store_file_checksum --file="$finalnginxconf"
|
if [ "${path_url:-}" != "/" ]
|
||||||
|
then
|
||||||
|
ynh_replace_string --match_string="^#sub_path_only" --replace_string="" --target_file="$finalnginxconf"
|
||||||
|
else
|
||||||
|
ynh_replace_string --match_string="^#root_path_only" --replace_string="" --target_file="$finalnginxconf"
|
||||||
|
fi
|
||||||
|
|
||||||
ynh_systemd_action --service_name=nginx --action=reload
|
ynh_store_file_checksum --file="$finalnginxconf"
|
||||||
|
|
||||||
|
ynh_systemd_action --service_name=nginx --action=reload
|
||||||
}
|
}
|
||||||
|
|
||||||
# Remove the dedicated nginx config
|
# Remove the dedicated nginx config
|
||||||
|
@ -73,6 +73,6 @@ ynh_add_nginx_config () {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.7.2 or higher.
|
# Requires YunoHost version 2.7.2 or higher.
|
||||||
ynh_remove_nginx_config () {
|
ynh_remove_nginx_config () {
|
||||||
ynh_secure_remove --file="/etc/nginx/conf.d/$domain.d/$app.conf"
|
ynh_secure_remove --file="/etc/nginx/conf.d/$domain.d/$app.conf"
|
||||||
ynh_systemd_action --service_name=nginx --action=reload
|
ynh_systemd_action --service_name=nginx --action=reload
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,16 +13,16 @@ export N_PREFIX="$n_install_dir"
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.7.12 or higher.
|
# Requires YunoHost version 2.7.12 or higher.
|
||||||
ynh_install_n () {
|
ynh_install_n () {
|
||||||
ynh_print_info --message="Installation of N - Node.js version management"
|
ynh_print_info --message="Installation of N - Node.js version management"
|
||||||
# Build an app.src for n
|
# Build an app.src for n
|
||||||
mkdir -p "../conf"
|
mkdir -p "../conf"
|
||||||
echo "SOURCE_URL=https://github.com/tj/n/archive/v4.1.0.tar.gz
|
echo "SOURCE_URL=https://github.com/tj/n/archive/v4.1.0.tar.gz
|
||||||
SOURCE_SUM=3983fa3f00d4bf85ba8e21f1a590f6e28938093abe0bb950aeea52b1717471fc" > "../conf/n.src"
|
SOURCE_SUM=3983fa3f00d4bf85ba8e21f1a590f6e28938093abe0bb950aeea52b1717471fc" > "../conf/n.src"
|
||||||
# Download and extract n
|
# Download and extract n
|
||||||
ynh_setup_source --dest_dir="$n_install_dir/git" --source_id=n
|
ynh_setup_source --dest_dir="$n_install_dir/git" --source_id=n
|
||||||
# Install n
|
# Install n
|
||||||
(cd "$n_install_dir/git"
|
(cd "$n_install_dir/git"
|
||||||
PREFIX=$N_PREFIX make install 2>&1)
|
PREFIX=$N_PREFIX make install 2>&1)
|
||||||
}
|
}
|
||||||
|
|
||||||
# Load the version of node for an app, and set variables.
|
# Load the version of node for an app, and set variables.
|
||||||
|
@ -41,15 +41,15 @@ SOURCE_SUM=3983fa3f00d4bf85ba8e21f1a590f6e28938093abe0bb950aeea52b1717471fc" > "
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.7.12 or higher.
|
# Requires YunoHost version 2.7.12 or higher.
|
||||||
ynh_use_nodejs () {
|
ynh_use_nodejs () {
|
||||||
nodejs_version=$(ynh_app_setting_get --app=$app --key=nodejs_version)
|
nodejs_version=$(ynh_app_setting_get --app=$app --key=nodejs_version)
|
||||||
|
|
||||||
nodejs_use_version="echo \"Deprecated command, should be removed\""
|
nodejs_use_version="echo \"Deprecated command, should be removed\""
|
||||||
|
|
||||||
# Get the absolute path of this version of node
|
# Get the absolute path of this version of node
|
||||||
nodejs_path="$node_version_path/$nodejs_version/bin"
|
nodejs_path="$node_version_path/$nodejs_version/bin"
|
||||||
|
|
||||||
# Load the path of this version of node in $PATH
|
# Load the path of this version of node in $PATH
|
||||||
[[ :$PATH: == *":$nodejs_path"* ]] || PATH="$nodejs_path:$PATH"
|
[[ :$PATH: == *":$nodejs_path"* ]] || PATH="$nodejs_path:$PATH"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Install a specific version of nodejs
|
# Install a specific version of nodejs
|
||||||
|
@ -64,72 +64,72 @@ ynh_use_nodejs () {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.7.12 or higher.
|
# Requires YunoHost version 2.7.12 or higher.
|
||||||
ynh_install_nodejs () {
|
ynh_install_nodejs () {
|
||||||
# Use n, https://github.com/tj/n to manage the nodejs versions
|
# Use n, https://github.com/tj/n to manage the nodejs versions
|
||||||
|
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=n
|
local legacy_args=n
|
||||||
local -A args_array=( [n]=nodejs_version= )
|
local -A args_array=( [n]=nodejs_version= )
|
||||||
local nodejs_version
|
local nodejs_version
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
|
|
||||||
# Create $n_install_dir
|
# Create $n_install_dir
|
||||||
mkdir -p "$n_install_dir"
|
mkdir -p "$n_install_dir"
|
||||||
|
|
||||||
# Load n path in PATH
|
# Load n path in PATH
|
||||||
CLEAR_PATH="$n_install_dir/bin:$PATH"
|
CLEAR_PATH="$n_install_dir/bin:$PATH"
|
||||||
# Remove /usr/local/bin in PATH in case of node prior installation
|
# Remove /usr/local/bin in PATH in case of node prior installation
|
||||||
PATH=$(echo $CLEAR_PATH | sed 's@/usr/local/bin:@@')
|
PATH=$(echo $CLEAR_PATH | sed 's@/usr/local/bin:@@')
|
||||||
|
|
||||||
# Move an existing node binary, to avoid to block n.
|
# Move an existing node binary, to avoid to block n.
|
||||||
test -x /usr/bin/node && mv /usr/bin/node /usr/bin/node_n
|
test -x /usr/bin/node && mv /usr/bin/node /usr/bin/node_n
|
||||||
test -x /usr/bin/npm && mv /usr/bin/npm /usr/bin/npm_n
|
test -x /usr/bin/npm && mv /usr/bin/npm /usr/bin/npm_n
|
||||||
|
|
||||||
# If n is not previously setup, install it
|
# If n is not previously setup, install it
|
||||||
if ! test $(n --version > /dev/null 2>&1)
|
if ! test $(n --version > /dev/null 2>&1)
|
||||||
then
|
then
|
||||||
ynh_install_n
|
ynh_install_n
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Modify the default N_PREFIX in n script
|
# Modify the default N_PREFIX in n script
|
||||||
ynh_replace_string --match_string="^N_PREFIX=\${N_PREFIX-.*}$" --replace_string="N_PREFIX=\${N_PREFIX-$N_PREFIX}" --target_file="$n_install_dir/bin/n"
|
ynh_replace_string --match_string="^N_PREFIX=\${N_PREFIX-.*}$" --replace_string="N_PREFIX=\${N_PREFIX-$N_PREFIX}" --target_file="$n_install_dir/bin/n"
|
||||||
|
|
||||||
# Restore /usr/local/bin in PATH
|
# Restore /usr/local/bin in PATH
|
||||||
PATH=$CLEAR_PATH
|
PATH=$CLEAR_PATH
|
||||||
|
|
||||||
# And replace the old node binary.
|
# And replace the old node binary.
|
||||||
test -x /usr/bin/node_n && mv /usr/bin/node_n /usr/bin/node
|
test -x /usr/bin/node_n && mv /usr/bin/node_n /usr/bin/node
|
||||||
test -x /usr/bin/npm_n && mv /usr/bin/npm_n /usr/bin/npm
|
test -x /usr/bin/npm_n && mv /usr/bin/npm_n /usr/bin/npm
|
||||||
|
|
||||||
# Install the requested version of nodejs
|
# Install the requested version of nodejs
|
||||||
uname=$(uname -m)
|
uname=$(uname -m)
|
||||||
if [[ $uname =~ aarch64 || $uname =~ arm64 ]]
|
if [[ $uname =~ aarch64 || $uname =~ arm64 ]]
|
||||||
then
|
then
|
||||||
n $nodejs_version --arch=arm64
|
n $nodejs_version --arch=arm64
|
||||||
else
|
else
|
||||||
n $nodejs_version
|
n $nodejs_version
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Find the last "real" version for this major version of node.
|
# Find the last "real" version for this major version of node.
|
||||||
real_nodejs_version=$(find $node_version_path/$nodejs_version* -maxdepth 0 | sort --version-sort | tail --lines=1)
|
real_nodejs_version=$(find $node_version_path/$nodejs_version* -maxdepth 0 | sort --version-sort | tail --lines=1)
|
||||||
real_nodejs_version=$(basename $real_nodejs_version)
|
real_nodejs_version=$(basename $real_nodejs_version)
|
||||||
|
|
||||||
# Create a symbolic link for this major version if the file doesn't already exist
|
# Create a symbolic link for this major version if the file doesn't already exist
|
||||||
if [ ! -e "$node_version_path/$nodejs_version" ]
|
if [ ! -e "$node_version_path/$nodejs_version" ]
|
||||||
then
|
then
|
||||||
ln --symbolic --force --no-target-directory $node_version_path/$real_nodejs_version $node_version_path/$nodejs_version
|
ln --symbolic --force --no-target-directory $node_version_path/$real_nodejs_version $node_version_path/$nodejs_version
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Store the ID of this app and the version of node requested for it
|
# Store the ID of this app and the version of node requested for it
|
||||||
echo "$YNH_APP_INSTANCE_NAME:$nodejs_version" | tee --append "$n_install_dir/ynh_app_version"
|
echo "$YNH_APP_INSTANCE_NAME:$nodejs_version" | tee --append "$n_install_dir/ynh_app_version"
|
||||||
|
|
||||||
# Store nodejs_version into the config of this app
|
# Store nodejs_version into the config of this app
|
||||||
ynh_app_setting_set --app=$app --key=nodejs_version --value=$nodejs_version
|
ynh_app_setting_set --app=$app --key=nodejs_version --value=$nodejs_version
|
||||||
|
|
||||||
# Build the update script and set the cronjob
|
# Build the update script and set the cronjob
|
||||||
ynh_cron_upgrade_node
|
ynh_cron_upgrade_node
|
||||||
|
|
||||||
ynh_use_nodejs
|
ynh_use_nodejs
|
||||||
}
|
}
|
||||||
|
|
||||||
# Remove the version of node used by the app.
|
# Remove the version of node used by the app.
|
||||||
|
@ -142,25 +142,25 @@ ynh_install_nodejs () {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.7.12 or higher.
|
# Requires YunoHost version 2.7.12 or higher.
|
||||||
ynh_remove_nodejs () {
|
ynh_remove_nodejs () {
|
||||||
nodejs_version=$(ynh_app_setting_get --app=$app --key=nodejs_version)
|
nodejs_version=$(ynh_app_setting_get --app=$app --key=nodejs_version)
|
||||||
|
|
||||||
# Remove the line for this app
|
# Remove the line for this app
|
||||||
sed --in-place "/$YNH_APP_INSTANCE_NAME:$nodejs_version/d" "$n_install_dir/ynh_app_version"
|
sed --in-place "/$YNH_APP_INSTANCE_NAME:$nodejs_version/d" "$n_install_dir/ynh_app_version"
|
||||||
|
|
||||||
# If no other app uses this version of nodejs, remove it.
|
# If no other app uses this version of nodejs, remove it.
|
||||||
if ! grep --quiet "$nodejs_version" "$n_install_dir/ynh_app_version"
|
if ! grep --quiet "$nodejs_version" "$n_install_dir/ynh_app_version"
|
||||||
then
|
then
|
||||||
$n_install_dir/bin/n rm $nodejs_version
|
$n_install_dir/bin/n rm $nodejs_version
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# If no other app uses n, remove n
|
# If no other app uses n, remove n
|
||||||
if [ ! -s "$n_install_dir/ynh_app_version" ]
|
if [ ! -s "$n_install_dir/ynh_app_version" ]
|
||||||
then
|
then
|
||||||
ynh_secure_remove --file="$n_install_dir"
|
ynh_secure_remove --file="$n_install_dir"
|
||||||
ynh_secure_remove --file="/usr/local/n"
|
ynh_secure_remove --file="/usr/local/n"
|
||||||
sed --in-place "/N_PREFIX/d" /root/.bashrc
|
sed --in-place "/N_PREFIX/d" /root/.bashrc
|
||||||
rm -f /etc/cron.daily/node_update
|
rm -f /etc/cron.daily/node_update
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Set a cron design to update your node versions
|
# Set a cron design to update your node versions
|
||||||
|
@ -173,8 +173,8 @@ ynh_remove_nodejs () {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.7.12 or higher.
|
# Requires YunoHost version 2.7.12 or higher.
|
||||||
ynh_cron_upgrade_node () {
|
ynh_cron_upgrade_node () {
|
||||||
# Build the update script
|
# Build the update script
|
||||||
cat > "$n_install_dir/node_update.sh" << EOF
|
cat > "$n_install_dir/node_update.sh" << EOF
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
version_path="$node_version_path"
|
version_path="$node_version_path"
|
||||||
|
@ -195,26 +195,26 @@ all_real_version=\$(echo "\$all_real_version" | sort --unique)
|
||||||
# Read each major version
|
# Read each major version
|
||||||
while read version
|
while read version
|
||||||
do
|
do
|
||||||
echo "Update of the version \$version"
|
echo "Update of the version \$version"
|
||||||
sudo \$n_install_dir/bin/n \$version
|
sudo \$n_install_dir/bin/n \$version
|
||||||
|
|
||||||
# Find the last "real" version for this major version of node.
|
# Find the last "real" version for this major version of node.
|
||||||
real_nodejs_version=\$(find \$version_path/\$version* -maxdepth 0 | sort --version-sort | tail --lines=1)
|
real_nodejs_version=\$(find \$version_path/\$version* -maxdepth 0 | sort --version-sort | tail --lines=1)
|
||||||
real_nodejs_version=\$(basename \$real_nodejs_version)
|
real_nodejs_version=\$(basename \$real_nodejs_version)
|
||||||
|
|
||||||
# Update the symbolic link for this version
|
# Update the symbolic link for this version
|
||||||
sudo ln --symbolic --force --no-target-directory \$version_path/\$real_nodejs_version \$version_path/\$version
|
sudo ln --symbolic --force --no-target-directory \$version_path/\$real_nodejs_version \$version_path/\$version
|
||||||
done <<< "\$(echo "\$all_real_version")"
|
done <<< "\$(echo "\$all_real_version")"
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
chmod +x "$n_install_dir/node_update.sh"
|
chmod +x "$n_install_dir/node_update.sh"
|
||||||
|
|
||||||
# Build the cronjob
|
# Build the cronjob
|
||||||
cat > "/etc/cron.daily/node_update" << EOF
|
cat > "/etc/cron.daily/node_update" << EOF
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
$n_install_dir/node_update.sh >> $n_install_dir/node_update.log
|
$n_install_dir/node_update.sh >> $n_install_dir/node_update.log
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
chmod +x "/etc/cron.daily/node_update"
|
chmod +x "/etc/cron.daily/node_update"
|
||||||
}
|
}
|
||||||
|
|
|
@ -57,179 +57,179 @@ YNH_PHP_VERSION=${YNH_PHP_VERSION:-$YNH_DEFAULT_PHP_VERSION}
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.7.2 or higher.
|
# Requires YunoHost version 2.7.2 or higher.
|
||||||
ynh_add_fpm_config () {
|
ynh_add_fpm_config () {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=vtufpd
|
local legacy_args=vtufpd
|
||||||
local -A args_array=( [v]=phpversion= [t]=use_template [u]=usage= [f]=footprint= [p]=package= [d]=dedicated_service )
|
local -A args_array=( [v]=phpversion= [t]=use_template [u]=usage= [f]=footprint= [p]=package= [d]=dedicated_service )
|
||||||
local phpversion
|
local phpversion
|
||||||
local use_template
|
local use_template
|
||||||
local usage
|
local usage
|
||||||
local footprint
|
local footprint
|
||||||
local package
|
local package
|
||||||
local dedicated_service
|
local dedicated_service
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
package=${package:-}
|
package=${package:-}
|
||||||
|
|
||||||
# The default behaviour is to use the template.
|
# The default behaviour is to use the template.
|
||||||
use_template="${use_template:-1}"
|
use_template="${use_template:-1}"
|
||||||
usage="${usage:-}"
|
usage="${usage:-}"
|
||||||
footprint="${footprint:-}"
|
footprint="${footprint:-}"
|
||||||
if [ -n "$usage" ] || [ -n "$footprint" ]; then
|
if [ -n "$usage" ] || [ -n "$footprint" ]; then
|
||||||
use_template=0
|
use_template=0
|
||||||
fi
|
fi
|
||||||
# Do not use a dedicated service by default
|
# Do not use a dedicated service by default
|
||||||
dedicated_service=${dedicated_service:-0}
|
dedicated_service=${dedicated_service:-0}
|
||||||
|
|
||||||
# Set the default PHP-FPM version by default
|
# Set the default PHP-FPM version by default
|
||||||
phpversion="${phpversion:-$YNH_PHP_VERSION}"
|
phpversion="${phpversion:-$YNH_PHP_VERSION}"
|
||||||
|
|
||||||
# If the requested php version is not the default version for YunoHost
|
# If the requested php version is not the default version for YunoHost
|
||||||
if [ "$phpversion" != "$YNH_DEFAULT_PHP_VERSION" ]
|
if [ "$phpversion" != "$YNH_DEFAULT_PHP_VERSION" ]
|
||||||
then
|
then
|
||||||
# If the argument --package is used, add the packages to ynh_install_php to install them from sury
|
# If the argument --package is used, add the packages to ynh_install_php to install them from sury
|
||||||
if [ -n "$package" ]; then
|
if [ -n "$package" ]; then
|
||||||
local additionnal_packages="--package=$package"
|
local additionnal_packages="--package=$package"
|
||||||
else
|
else
|
||||||
local additionnal_packages=""
|
local additionnal_packages=""
|
||||||
fi
|
fi
|
||||||
# Install this specific version of php.
|
# Install this specific version of php.
|
||||||
ynh_install_php --phpversion=$phpversion "$additionnal_packages"
|
ynh_install_php --phpversion=$phpversion "$additionnal_packages"
|
||||||
elif [ -n "$package" ]
|
elif [ -n "$package" ]
|
||||||
then
|
then
|
||||||
# Install the additionnal packages from the default repository
|
# Install the additionnal packages from the default repository
|
||||||
ynh_add_app_dependencies --package="$package"
|
ynh_add_app_dependencies --package="$package"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $dedicated_service -eq 1 ]
|
if [ $dedicated_service -eq 1 ]
|
||||||
then
|
then
|
||||||
local fpm_service="${app}-phpfpm"
|
local fpm_service="${app}-phpfpm"
|
||||||
local fpm_config_dir="/etc/php/$phpversion/dedicated-fpm"
|
local fpm_config_dir="/etc/php/$phpversion/dedicated-fpm"
|
||||||
else
|
else
|
||||||
local fpm_service="php${phpversion}-fpm"
|
local fpm_service="php${phpversion}-fpm"
|
||||||
local fpm_config_dir="/etc/php/$phpversion/fpm"
|
local fpm_config_dir="/etc/php/$phpversion/fpm"
|
||||||
fi
|
fi
|
||||||
# Configure PHP-FPM 5 on Debian Jessie
|
# Configure PHP-FPM 5 on Debian Jessie
|
||||||
if [ "$(ynh_get_debian_release)" == "jessie" ]; then
|
if [ "$(ynh_get_debian_release)" == "jessie" ]; then
|
||||||
fpm_config_dir="/etc/php5/fpm"
|
fpm_config_dir="/etc/php5/fpm"
|
||||||
fpm_service="php5-fpm"
|
fpm_service="php5-fpm"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Create the directory for fpm pools
|
# Create the directory for fpm pools
|
||||||
mkdir -p "$fpm_config_dir/pool.d"
|
mkdir -p "$fpm_config_dir/pool.d"
|
||||||
|
|
||||||
ynh_app_setting_set --app=$app --key=fpm_config_dir --value="$fpm_config_dir"
|
ynh_app_setting_set --app=$app --key=fpm_config_dir --value="$fpm_config_dir"
|
||||||
ynh_app_setting_set --app=$app --key=fpm_service --value="$fpm_service"
|
ynh_app_setting_set --app=$app --key=fpm_service --value="$fpm_service"
|
||||||
ynh_app_setting_set --app=$app --key=fpm_dedicated_service --value="$dedicated_service"
|
ynh_app_setting_set --app=$app --key=fpm_dedicated_service --value="$dedicated_service"
|
||||||
ynh_app_setting_set --app=$app --key=phpversion --value=$phpversion
|
ynh_app_setting_set --app=$app --key=phpversion --value=$phpversion
|
||||||
finalphpconf="$fpm_config_dir/pool.d/$app.conf"
|
finalphpconf="$fpm_config_dir/pool.d/$app.conf"
|
||||||
|
|
||||||
# Migrate from mutual php service to dedicated one.
|
# Migrate from mutual php service to dedicated one.
|
||||||
if [ $dedicated_service -eq 1 ]
|
if [ $dedicated_service -eq 1 ]
|
||||||
then
|
then
|
||||||
local old_fpm_config_dir="/etc/php/$phpversion/fpm"
|
local old_fpm_config_dir="/etc/php/$phpversion/fpm"
|
||||||
# If a config file exist in the common pool, move it.
|
# If a config file exist in the common pool, move it.
|
||||||
if [ -e "$old_fpm_config_dir/pool.d/$app.conf" ]
|
if [ -e "$old_fpm_config_dir/pool.d/$app.conf" ]
|
||||||
then
|
then
|
||||||
ynh_print_info --message="Migrate to a dedicated php-fpm service for $app."
|
ynh_print_info --message="Migrate to a dedicated php-fpm service for $app."
|
||||||
# Create a backup of the old file before migration
|
# Create a backup of the old file before migration
|
||||||
ynh_backup_if_checksum_is_different --file="$old_fpm_config_dir/pool.d/$app.conf"
|
ynh_backup_if_checksum_is_different --file="$old_fpm_config_dir/pool.d/$app.conf"
|
||||||
# Remove the old php config file
|
# Remove the old php config file
|
||||||
ynh_secure_remove --file="$old_fpm_config_dir/pool.d/$app.conf"
|
ynh_secure_remove --file="$old_fpm_config_dir/pool.d/$app.conf"
|
||||||
# Reload php to release the socket and allow the dedicated service to use it
|
# Reload php to release the socket and allow the dedicated service to use it
|
||||||
ynh_systemd_action --service_name=php${phpversion}-fpm --action=reload
|
ynh_systemd_action --service_name=php${phpversion}-fpm --action=reload
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ynh_backup_if_checksum_is_different --file="$finalphpconf"
|
ynh_backup_if_checksum_is_different --file="$finalphpconf"
|
||||||
|
|
||||||
if [ $use_template -eq 1 ]
|
if [ $use_template -eq 1 ]
|
||||||
then
|
then
|
||||||
# Usage 1, use the template in ../conf/php-fpm.conf
|
# Usage 1, use the template in ../conf/php-fpm.conf
|
||||||
cp ../conf/php-fpm.conf "$finalphpconf"
|
cp ../conf/php-fpm.conf "$finalphpconf"
|
||||||
ynh_replace_string --match_string="__NAMETOCHANGE__" --replace_string="$app" --target_file="$finalphpconf"
|
ynh_replace_string --match_string="__NAMETOCHANGE__" --replace_string="$app" --target_file="$finalphpconf"
|
||||||
ynh_replace_string --match_string="__FINALPATH__" --replace_string="$final_path" --target_file="$finalphpconf"
|
ynh_replace_string --match_string="__FINALPATH__" --replace_string="$final_path" --target_file="$finalphpconf"
|
||||||
ynh_replace_string --match_string="__USER__" --replace_string="$app" --target_file="$finalphpconf"
|
ynh_replace_string --match_string="__USER__" --replace_string="$app" --target_file="$finalphpconf"
|
||||||
ynh_replace_string --match_string="__PHPVERSION__" --replace_string="$phpversion" --target_file="$finalphpconf"
|
ynh_replace_string --match_string="__PHPVERSION__" --replace_string="$phpversion" --target_file="$finalphpconf"
|
||||||
|
|
||||||
else
|
else
|
||||||
# Usage 2, generate a php-fpm config file with ynh_get_scalable_phpfpm
|
# Usage 2, generate a php-fpm config file with ynh_get_scalable_phpfpm
|
||||||
|
|
||||||
# Store settings
|
# Store settings
|
||||||
ynh_app_setting_set --app=$app --key=fpm_footprint --value=$footprint
|
ynh_app_setting_set --app=$app --key=fpm_footprint --value=$footprint
|
||||||
ynh_app_setting_set --app=$app --key=fpm_usage --value=$usage
|
ynh_app_setting_set --app=$app --key=fpm_usage --value=$usage
|
||||||
|
|
||||||
# Define the values to use for the configuration of php.
|
# Define the values to use for the configuration of php.
|
||||||
ynh_get_scalable_phpfpm --usage=$usage --footprint=$footprint
|
ynh_get_scalable_phpfpm --usage=$usage --footprint=$footprint
|
||||||
|
|
||||||
# Copy the default file
|
# Copy the default file
|
||||||
cp "/etc/php/$phpversion/fpm/pool.d/www.conf" "$finalphpconf"
|
cp "/etc/php/$phpversion/fpm/pool.d/www.conf" "$finalphpconf"
|
||||||
|
|
||||||
# Replace standard variables into the default file
|
# Replace standard variables into the default file
|
||||||
ynh_replace_string --match_string="^\[www\]" --replace_string="[$app]" --target_file="$finalphpconf"
|
ynh_replace_string --match_string="^\[www\]" --replace_string="[$app]" --target_file="$finalphpconf"
|
||||||
ynh_replace_string --match_string=".*listen = .*" --replace_string="listen = /var/run/php/php$phpversion-fpm-$app.sock" --target_file="$finalphpconf"
|
ynh_replace_string --match_string=".*listen = .*" --replace_string="listen = /var/run/php/php$phpversion-fpm-$app.sock" --target_file="$finalphpconf"
|
||||||
ynh_replace_string --match_string="^user = .*" --replace_string="user = $app" --target_file="$finalphpconf"
|
ynh_replace_string --match_string="^user = .*" --replace_string="user = $app" --target_file="$finalphpconf"
|
||||||
ynh_replace_string --match_string="^group = .*" --replace_string="group = $app" --target_file="$finalphpconf"
|
ynh_replace_string --match_string="^group = .*" --replace_string="group = $app" --target_file="$finalphpconf"
|
||||||
ynh_replace_string --match_string=".*chdir = .*" --replace_string="chdir = $final_path" --target_file="$finalphpconf"
|
ynh_replace_string --match_string=".*chdir = .*" --replace_string="chdir = $final_path" --target_file="$finalphpconf"
|
||||||
|
|
||||||
# Configure fpm children
|
# Configure fpm children
|
||||||
ynh_replace_string --match_string=".*pm = .*" --replace_string="pm = $php_pm" --target_file="$finalphpconf"
|
ynh_replace_string --match_string=".*pm = .*" --replace_string="pm = $php_pm" --target_file="$finalphpconf"
|
||||||
ynh_replace_string --match_string=".*pm.max_children = .*" --replace_string="pm.max_children = $php_max_children" --target_file="$finalphpconf"
|
ynh_replace_string --match_string=".*pm.max_children = .*" --replace_string="pm.max_children = $php_max_children" --target_file="$finalphpconf"
|
||||||
ynh_replace_string --match_string=".*pm.max_requests = .*" --replace_string="pm.max_requests = 500" --target_file="$finalphpconf"
|
ynh_replace_string --match_string=".*pm.max_requests = .*" --replace_string="pm.max_requests = 500" --target_file="$finalphpconf"
|
||||||
ynh_replace_string --match_string=".*request_terminate_timeout = .*" --replace_string="request_terminate_timeout = 1d" --target_file="$finalphpconf"
|
ynh_replace_string --match_string=".*request_terminate_timeout = .*" --replace_string="request_terminate_timeout = 1d" --target_file="$finalphpconf"
|
||||||
if [ "$php_pm" = "dynamic" ]
|
if [ "$php_pm" = "dynamic" ]
|
||||||
then
|
then
|
||||||
ynh_replace_string --match_string=".*pm.start_servers = .*" --replace_string="pm.start_servers = $php_start_servers" --target_file="$finalphpconf"
|
ynh_replace_string --match_string=".*pm.start_servers = .*" --replace_string="pm.start_servers = $php_start_servers" --target_file="$finalphpconf"
|
||||||
ynh_replace_string --match_string=".*pm.min_spare_servers = .*" --replace_string="pm.min_spare_servers = $php_min_spare_servers" --target_file="$finalphpconf"
|
ynh_replace_string --match_string=".*pm.min_spare_servers = .*" --replace_string="pm.min_spare_servers = $php_min_spare_servers" --target_file="$finalphpconf"
|
||||||
ynh_replace_string --match_string=".*pm.max_spare_servers = .*" --replace_string="pm.max_spare_servers = $php_max_spare_servers" --target_file="$finalphpconf"
|
ynh_replace_string --match_string=".*pm.max_spare_servers = .*" --replace_string="pm.max_spare_servers = $php_max_spare_servers" --target_file="$finalphpconf"
|
||||||
elif [ "$php_pm" = "ondemand" ]
|
elif [ "$php_pm" = "ondemand" ]
|
||||||
then
|
then
|
||||||
ynh_replace_string --match_string=".*pm.process_idle_timeout = .*" --replace_string="pm.process_idle_timeout = 10s" --target_file="$finalphpconf"
|
ynh_replace_string --match_string=".*pm.process_idle_timeout = .*" --replace_string="pm.process_idle_timeout = 10s" --target_file="$finalphpconf"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Comment unused parameters
|
# Comment unused parameters
|
||||||
if [ "$php_pm" != "dynamic" ]
|
if [ "$php_pm" != "dynamic" ]
|
||||||
then
|
then
|
||||||
ynh_replace_string --match_string=".*\(pm.start_servers = .*\)" --replace_string=";\1" --target_file="$finalphpconf"
|
ynh_replace_string --match_string=".*\(pm.start_servers = .*\)" --replace_string=";\1" --target_file="$finalphpconf"
|
||||||
ynh_replace_string --match_string=".*\(pm.min_spare_servers = .*\)" --replace_string=";\1" --target_file="$finalphpconf"
|
ynh_replace_string --match_string=".*\(pm.min_spare_servers = .*\)" --replace_string=";\1" --target_file="$finalphpconf"
|
||||||
ynh_replace_string --match_string=".*\(pm.max_spare_servers = .*\)" --replace_string=";\1" --target_file="$finalphpconf"
|
ynh_replace_string --match_string=".*\(pm.max_spare_servers = .*\)" --replace_string=";\1" --target_file="$finalphpconf"
|
||||||
fi
|
fi
|
||||||
if [ "$php_pm" != "ondemand" ]
|
if [ "$php_pm" != "ondemand" ]
|
||||||
then
|
then
|
||||||
ynh_replace_string --match_string=".*\(pm.process_idle_timeout = .*\)" --replace_string=";\1" --target_file="$finalphpconf"
|
ynh_replace_string --match_string=".*\(pm.process_idle_timeout = .*\)" --replace_string=";\1" --target_file="$finalphpconf"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Concatene the extra config.
|
# Concatene the extra config.
|
||||||
if [ -e ../conf/extra_php-fpm.conf ]; then
|
if [ -e ../conf/extra_php-fpm.conf ]; then
|
||||||
cat ../conf/extra_php-fpm.conf >> "$finalphpconf"
|
cat ../conf/extra_php-fpm.conf >> "$finalphpconf"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
chown root: "$finalphpconf"
|
chown root: "$finalphpconf"
|
||||||
ynh_store_file_checksum --file="$finalphpconf"
|
ynh_store_file_checksum --file="$finalphpconf"
|
||||||
|
|
||||||
if [ -e "../conf/php-fpm.ini" ]
|
if [ -e "../conf/php-fpm.ini" ]
|
||||||
then
|
then
|
||||||
ynh_print_warn -message="Packagers ! Please do not use a separate php ini file, merge your directives in the pool file instead."
|
ynh_print_warn -message="Packagers ! Please do not use a separate php ini file, merge your directives in the pool file instead."
|
||||||
finalphpini="$fpm_config_dir/conf.d/20-$app.ini"
|
finalphpini="$fpm_config_dir/conf.d/20-$app.ini"
|
||||||
ynh_backup_if_checksum_is_different "$finalphpini"
|
ynh_backup_if_checksum_is_different "$finalphpini"
|
||||||
cp ../conf/php-fpm.ini "$finalphpini"
|
cp ../conf/php-fpm.ini "$finalphpini"
|
||||||
chown root: "$finalphpini"
|
chown root: "$finalphpini"
|
||||||
ynh_store_file_checksum "$finalphpini"
|
ynh_store_file_checksum "$finalphpini"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $dedicated_service -eq 1 ]
|
if [ $dedicated_service -eq 1 ]
|
||||||
then
|
then
|
||||||
# Create a dedicated php-fpm.conf for the service
|
# Create a dedicated php-fpm.conf for the service
|
||||||
local globalphpconf=$fpm_config_dir/php-fpm-$app.conf
|
local globalphpconf=$fpm_config_dir/php-fpm-$app.conf
|
||||||
cp /etc/php/${phpversion}/fpm/php-fpm.conf $globalphpconf
|
cp /etc/php/${phpversion}/fpm/php-fpm.conf $globalphpconf
|
||||||
|
|
||||||
ynh_replace_string --match_string="^[; ]*pid *=.*" --replace_string="pid = /run/php/php${phpversion}-fpm-$app.pid" --target_file="$globalphpconf"
|
ynh_replace_string --match_string="^[; ]*pid *=.*" --replace_string="pid = /run/php/php${phpversion}-fpm-$app.pid" --target_file="$globalphpconf"
|
||||||
ynh_replace_string --match_string="^[; ]*error_log *=.*" --replace_string="error_log = /var/log/php/fpm-php.$app.log" --target_file="$globalphpconf"
|
ynh_replace_string --match_string="^[; ]*error_log *=.*" --replace_string="error_log = /var/log/php/fpm-php.$app.log" --target_file="$globalphpconf"
|
||||||
ynh_replace_string --match_string="^[; ]*syslog.ident *=.*" --replace_string="syslog.ident = php-fpm-$app" --target_file="$globalphpconf"
|
ynh_replace_string --match_string="^[; ]*syslog.ident *=.*" --replace_string="syslog.ident = php-fpm-$app" --target_file="$globalphpconf"
|
||||||
ynh_replace_string --match_string="^[; ]*include *=.*" --replace_string="include = $finalphpconf" --target_file="$globalphpconf"
|
ynh_replace_string --match_string="^[; ]*include *=.*" --replace_string="include = $finalphpconf" --target_file="$globalphpconf"
|
||||||
|
|
||||||
# Create a config for a dedicated php-fpm service for the app
|
# Create a config for a dedicated php-fpm service for the app
|
||||||
echo "[Unit]
|
echo "[Unit]
|
||||||
Description=PHP $phpversion FastCGI Process Manager for $app
|
Description=PHP $phpversion FastCGI Process Manager for $app
|
||||||
After=network.target
|
After=network.target
|
||||||
|
|
||||||
|
@ -243,18 +243,18 @@ ExecReload=/bin/kill -USR2 \$MAINPID
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
" > ../conf/$fpm_service
|
" > ../conf/$fpm_service
|
||||||
|
|
||||||
# Create this dedicated php-fpm service
|
# Create this dedicated php-fpm service
|
||||||
ynh_add_systemd_config --service=$fpm_service --template=$fpm_service
|
ynh_add_systemd_config --service=$fpm_service --template=$fpm_service
|
||||||
# Integrate the service in YunoHost admin panel
|
# Integrate the service in YunoHost admin panel
|
||||||
yunohost service add $fpm_service --log /var/log/php/fpm-php.$app.log --log_type file --description "Php-fpm dedicated to $app"
|
yunohost service add $fpm_service --log /var/log/php/fpm-php.$app.log --log_type file --description "Php-fpm dedicated to $app"
|
||||||
# Configure log rotate
|
# Configure log rotate
|
||||||
ynh_use_logrotate --logfile=/var/log/php
|
ynh_use_logrotate --logfile=/var/log/php
|
||||||
# Restart the service, as this service is either stopped or only for this app
|
# Restart the service, as this service is either stopped or only for this app
|
||||||
ynh_systemd_action --service_name=$fpm_service --action=restart
|
ynh_systemd_action --service_name=$fpm_service --action=restart
|
||||||
else
|
else
|
||||||
# Reload php, to not impact other parts of the system using php
|
# Reload php, to not impact other parts of the system using php
|
||||||
ynh_systemd_action --service_name=$fpm_service --action=reload
|
ynh_systemd_action --service_name=$fpm_service --action=reload
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Remove the dedicated php-fpm config
|
# Remove the dedicated php-fpm config
|
||||||
|
@ -263,43 +263,43 @@ WantedBy=multi-user.target
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.7.2 or higher.
|
# Requires YunoHost version 2.7.2 or higher.
|
||||||
ynh_remove_fpm_config () {
|
ynh_remove_fpm_config () {
|
||||||
local fpm_config_dir=$(ynh_app_setting_get --app=$app --key=fpm_config_dir)
|
local fpm_config_dir=$(ynh_app_setting_get --app=$app --key=fpm_config_dir)
|
||||||
local fpm_service=$(ynh_app_setting_get --app=$app --key=fpm_service)
|
local fpm_service=$(ynh_app_setting_get --app=$app --key=fpm_service)
|
||||||
local dedicated_service=$(ynh_app_setting_get --app=$app --key=fpm_dedicated_service)
|
local dedicated_service=$(ynh_app_setting_get --app=$app --key=fpm_dedicated_service)
|
||||||
dedicated_service=${dedicated_service:-0}
|
dedicated_service=${dedicated_service:-0}
|
||||||
# Get the version of php used by this app
|
# Get the version of php used by this app
|
||||||
local phpversion=$(ynh_app_setting_get $app phpversion)
|
local phpversion=$(ynh_app_setting_get $app phpversion)
|
||||||
|
|
||||||
# Assume default PHP-FPM version by default
|
# Assume default PHP-FPM version by default
|
||||||
phpversion="${phpversion:-$YNH_DEFAULT_PHP_VERSION}"
|
phpversion="${phpversion:-$YNH_DEFAULT_PHP_VERSION}"
|
||||||
|
|
||||||
# Assume default php files if not set
|
# Assume default php files if not set
|
||||||
if [ -z "$fpm_config_dir" ]; then
|
if [ -z "$fpm_config_dir" ]; then
|
||||||
fpm_config_dir="/etc/php/$YNH_DEFAULT_PHP_VERSION/fpm"
|
fpm_config_dir="/etc/php/$YNH_DEFAULT_PHP_VERSION/fpm"
|
||||||
fpm_service="php$YNH_DEFAULT_PHP_VERSION-fpm"
|
fpm_service="php$YNH_DEFAULT_PHP_VERSION-fpm"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $dedicated_service -eq 1 ]
|
if [ $dedicated_service -eq 1 ]
|
||||||
then
|
then
|
||||||
# Remove the dedicated service php-fpm service for the app
|
# Remove the dedicated service php-fpm service for the app
|
||||||
ynh_remove_systemd_config --service=$fpm_service
|
ynh_remove_systemd_config --service=$fpm_service
|
||||||
# Remove the global php-fpm conf
|
# Remove the global php-fpm conf
|
||||||
ynh_secure_remove --file="$fpm_config_dir/php-fpm-$app.conf"
|
ynh_secure_remove --file="$fpm_config_dir/php-fpm-$app.conf"
|
||||||
# Remove the service from the list of services known by Yunohost
|
# Remove the service from the list of services known by Yunohost
|
||||||
yunohost service remove $fpm_service
|
yunohost service remove $fpm_service
|
||||||
elif ynh_package_is_installed --package="php${phpversion}-fpm"; then
|
elif ynh_package_is_installed --package="php${phpversion}-fpm"; then
|
||||||
ynh_systemd_action --service_name=$fpm_service --action=reload
|
ynh_systemd_action --service_name=$fpm_service --action=reload
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ynh_secure_remove --file="$fpm_config_dir/pool.d/$app.conf"
|
ynh_secure_remove --file="$fpm_config_dir/pool.d/$app.conf"
|
||||||
ynh_exec_warn_less ynh_secure_remove --file="$fpm_config_dir/conf.d/20-$app.ini"
|
ynh_exec_warn_less ynh_secure_remove --file="$fpm_config_dir/conf.d/20-$app.ini"
|
||||||
|
|
||||||
# If the php version used is not the default version for YunoHost
|
# If the php version used is not the default version for YunoHost
|
||||||
if [ "$phpversion" != "$YNH_DEFAULT_PHP_VERSION" ]
|
if [ "$phpversion" != "$YNH_DEFAULT_PHP_VERSION" ]
|
||||||
then
|
then
|
||||||
# Remove this specific version of php
|
# Remove this specific version of php
|
||||||
ynh_remove_php
|
ynh_remove_php
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Install another version of php.
|
# Install another version of php.
|
||||||
|
@ -310,50 +310,50 @@ ynh_remove_fpm_config () {
|
||||||
# | arg: -v, --phpversion - Version of php to install.
|
# | arg: -v, --phpversion - Version of php to install.
|
||||||
# | arg: -p, --package - Additionnal php packages to install
|
# | arg: -p, --package - Additionnal php packages to install
|
||||||
ynh_install_php () {
|
ynh_install_php () {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=vp
|
local legacy_args=vp
|
||||||
local -A args_array=( [v]=phpversion= [p]=package= )
|
local -A args_array=( [v]=phpversion= [p]=package= )
|
||||||
local phpversion
|
local phpversion
|
||||||
local package
|
local package
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
package=${package:-}
|
package=${package:-}
|
||||||
|
|
||||||
# Store phpversion into the config of this app
|
# Store phpversion into the config of this app
|
||||||
ynh_app_setting_set $app phpversion $phpversion
|
ynh_app_setting_set $app phpversion $phpversion
|
||||||
|
|
||||||
if [ "$phpversion" == "$YNH_DEFAULT_PHP_VERSION" ]
|
if [ "$phpversion" == "$YNH_DEFAULT_PHP_VERSION" ]
|
||||||
then
|
then
|
||||||
ynh_die "Do not use ynh_install_php to install php$YNH_DEFAULT_PHP_VERSION"
|
ynh_die "Do not use ynh_install_php to install php$YNH_DEFAULT_PHP_VERSION"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Create the file if doesn't exist already
|
# Create the file if doesn't exist already
|
||||||
touch /etc/php/ynh_app_version
|
touch /etc/php/ynh_app_version
|
||||||
|
|
||||||
# Do not add twice the same line
|
# Do not add twice the same line
|
||||||
if ! grep --quiet "$YNH_APP_INSTANCE_NAME:" "/etc/php/ynh_app_version"
|
if ! grep --quiet "$YNH_APP_INSTANCE_NAME:" "/etc/php/ynh_app_version"
|
||||||
then
|
then
|
||||||
# Store the ID of this app and the version of php requested for it
|
# Store the ID of this app and the version of php requested for it
|
||||||
echo "$YNH_APP_INSTANCE_NAME:$phpversion" | tee --append "/etc/php/ynh_app_version"
|
echo "$YNH_APP_INSTANCE_NAME:$phpversion" | tee --append "/etc/php/ynh_app_version"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Add an extra repository for those packages
|
# Add an extra repository for those packages
|
||||||
ynh_install_extra_repo --repo="https://packages.sury.org/php/ $(lsb_release -sc) main" --key="https://packages.sury.org/php/apt.gpg" --priority=995 --name=extra_php_version
|
ynh_install_extra_repo --repo="https://packages.sury.org/php/ $(lsb_release -sc) main" --key="https://packages.sury.org/php/apt.gpg" --priority=995 --name=extra_php_version
|
||||||
|
|
||||||
# Install requested dependencies from this extra repository.
|
# Install requested dependencies from this extra repository.
|
||||||
# Install php-fpm first, otherwise php will install apache as a dependency.
|
# Install php-fpm first, otherwise php will install apache as a dependency.
|
||||||
ynh_add_app_dependencies --package="php${phpversion}-fpm"
|
ynh_add_app_dependencies --package="php${phpversion}-fpm"
|
||||||
ynh_add_app_dependencies --package="php$phpversion php${phpversion}-common $package"
|
ynh_add_app_dependencies --package="php$phpversion php${phpversion}-common $package"
|
||||||
|
|
||||||
# Set the default php version back as the default version for php-cli.
|
# Set the default php version back as the default version for php-cli.
|
||||||
update-alternatives --set php /usr/bin/php$YNH_DEFAULT_PHP_VERSION
|
update-alternatives --set php /usr/bin/php$YNH_DEFAULT_PHP_VERSION
|
||||||
|
|
||||||
# Pin this extra repository after packages are installed to prevent sury of doing shit
|
# Pin this extra repository after packages are installed to prevent sury of doing shit
|
||||||
ynh_pin_repo --package="*" --pin="origin \"packages.sury.org\"" --priority=200 --name=extra_php_version
|
ynh_pin_repo --package="*" --pin="origin \"packages.sury.org\"" --priority=200 --name=extra_php_version
|
||||||
ynh_pin_repo --package="php${YNH_DEFAULT_PHP_VERSION}*" --pin="origin \"packages.sury.org\"" --priority=600 --name=extra_php_version --append
|
ynh_pin_repo --package="php${YNH_DEFAULT_PHP_VERSION}*" --pin="origin \"packages.sury.org\"" --priority=600 --name=extra_php_version --append
|
||||||
|
|
||||||
# Advertise service in admin panel
|
# Advertise service in admin panel
|
||||||
yunohost service add php${phpversion}-fpm --log "/var/log/php${phpversion}-fpm.log"
|
yunohost service add php${phpversion}-fpm --log "/var/log/php${phpversion}-fpm.log"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Remove the specific version of php used by the app.
|
# Remove the specific version of php used by the app.
|
||||||
|
@ -362,35 +362,35 @@ ynh_install_php () {
|
||||||
#
|
#
|
||||||
# usage: ynh_install_php
|
# usage: ynh_install_php
|
||||||
ynh_remove_php () {
|
ynh_remove_php () {
|
||||||
# Get the version of php used by this app
|
# Get the version of php used by this app
|
||||||
local phpversion=$(ynh_app_setting_get $app phpversion)
|
local phpversion=$(ynh_app_setting_get $app phpversion)
|
||||||
|
|
||||||
if [ "$phpversion" == "$YNH_DEFAULT_PHP_VERSION" ] || [ -z "$phpversion" ]
|
if [ "$phpversion" == "$YNH_DEFAULT_PHP_VERSION" ] || [ -z "$phpversion" ]
|
||||||
then
|
then
|
||||||
if [ "$phpversion" == "$YNH_DEFAULT_PHP_VERSION" ]
|
if [ "$phpversion" == "$YNH_DEFAULT_PHP_VERSION" ]
|
||||||
then
|
then
|
||||||
ynh_print_err "Do not use ynh_remove_php to remove php$YNH_DEFAULT_PHP_VERSION !"
|
ynh_print_err "Do not use ynh_remove_php to remove php$YNH_DEFAULT_PHP_VERSION !"
|
||||||
fi
|
fi
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Create the file if doesn't exist already
|
# Create the file if doesn't exist already
|
||||||
touch /etc/php/ynh_app_version
|
touch /etc/php/ynh_app_version
|
||||||
|
|
||||||
# Remove the line for this app
|
# Remove the line for this app
|
||||||
sed --in-place "/$YNH_APP_INSTANCE_NAME:$phpversion/d" "/etc/php/ynh_app_version"
|
sed --in-place "/$YNH_APP_INSTANCE_NAME:$phpversion/d" "/etc/php/ynh_app_version"
|
||||||
|
|
||||||
# If no other app uses this version of php, remove it.
|
# If no other app uses this version of php, remove it.
|
||||||
if ! grep --quiet "$phpversion" "/etc/php/ynh_app_version"
|
if ! grep --quiet "$phpversion" "/etc/php/ynh_app_version"
|
||||||
then
|
then
|
||||||
# Remove the service from the admin panel
|
# Remove the service from the admin panel
|
||||||
if ynh_package_is_installed --package="php${phpversion}-fpm"; then
|
if ynh_package_is_installed --package="php${phpversion}-fpm"; then
|
||||||
yunohost service remove php${phpversion}-fpm
|
yunohost service remove php${phpversion}-fpm
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Purge php dependencies for this version.
|
# Purge php dependencies for this version.
|
||||||
ynh_package_autopurge "php$phpversion php${phpversion}-fpm php${phpversion}-common"
|
ynh_package_autopurge "php$phpversion php${phpversion}-fpm php${phpversion}-common"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Define the values to configure php-fpm
|
# Define the values to configure php-fpm
|
||||||
|
|
|
@ -15,17 +15,17 @@ PSQL_ROOT_PWD_FILE=/etc/yunohost/psql
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 3.5.0 or higher.
|
# Requires YunoHost version 3.5.0 or higher.
|
||||||
ynh_psql_connect_as() {
|
ynh_psql_connect_as() {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=upd
|
local legacy_args=upd
|
||||||
local -A args_array=([u]=user= [p]=password= [d]=database=)
|
local -A args_array=([u]=user= [p]=password= [d]=database=)
|
||||||
local user
|
local user
|
||||||
local password
|
local password
|
||||||
local database
|
local database
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
database="${database:-}"
|
database="${database:-}"
|
||||||
|
|
||||||
sudo --login --user=postgres PGUSER="$user" PGPASSWORD="$password" psql "$database"
|
sudo --login --user=postgres PGUSER="$user" PGPASSWORD="$password" psql "$database"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Execute a command as root user
|
# Execute a command as root user
|
||||||
|
@ -36,17 +36,17 @@ ynh_psql_connect_as() {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 3.5.0 or higher.
|
# Requires YunoHost version 3.5.0 or higher.
|
||||||
ynh_psql_execute_as_root() {
|
ynh_psql_execute_as_root() {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=sd
|
local legacy_args=sd
|
||||||
local -A args_array=([s]=sql= [d]=database=)
|
local -A args_array=([s]=sql= [d]=database=)
|
||||||
local sql
|
local sql
|
||||||
local database
|
local database
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
database="${database:-}"
|
database="${database:-}"
|
||||||
|
|
||||||
ynh_psql_connect_as --user="postgres" --password="$(cat $PSQL_ROOT_PWD_FILE)" \
|
ynh_psql_connect_as --user="postgres" --password="$(cat $PSQL_ROOT_PWD_FILE)" \
|
||||||
--database="$database" <<<"$sql"
|
--database="$database" <<<"$sql"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Execute a command from a file as root user
|
# Execute a command from a file as root user
|
||||||
|
@ -57,17 +57,17 @@ ynh_psql_execute_as_root() {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 3.5.0 or higher.
|
# Requires YunoHost version 3.5.0 or higher.
|
||||||
ynh_psql_execute_file_as_root() {
|
ynh_psql_execute_file_as_root() {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=fd
|
local legacy_args=fd
|
||||||
local -A args_array=([f]=file= [d]=database=)
|
local -A args_array=([f]=file= [d]=database=)
|
||||||
local file
|
local file
|
||||||
local database
|
local database
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
database="${database:-}"
|
database="${database:-}"
|
||||||
|
|
||||||
ynh_psql_connect_as --user="postgres" --password="$(cat $PSQL_ROOT_PWD_FILE)" \
|
ynh_psql_connect_as --user="postgres" --password="$(cat $PSQL_ROOT_PWD_FILE)" \
|
||||||
--database="$database" <"$file"
|
--database="$database" <"$file"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Create a database and grant optionnaly privilegies to a user
|
# Create a database and grant optionnaly privilegies to a user
|
||||||
|
@ -80,17 +80,17 @@ ynh_psql_execute_file_as_root() {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 3.5.0 or higher.
|
# Requires YunoHost version 3.5.0 or higher.
|
||||||
ynh_psql_create_db() {
|
ynh_psql_create_db() {
|
||||||
local db=$1
|
local db=$1
|
||||||
local user=${2:-}
|
local user=${2:-}
|
||||||
|
|
||||||
local sql="CREATE DATABASE ${db};"
|
local sql="CREATE DATABASE ${db};"
|
||||||
|
|
||||||
# grant all privilegies to user
|
# grant all privilegies to user
|
||||||
if [ -n "$user" ]; then
|
if [ -n "$user" ]; then
|
||||||
sql+="GRANT ALL PRIVILEGES ON DATABASE ${db} TO ${user} WITH GRANT OPTION;"
|
sql+="GRANT ALL PRIVILEGES ON DATABASE ${db} TO ${user} WITH GRANT OPTION;"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ynh_psql_execute_as_root --sql="$sql"
|
ynh_psql_execute_as_root --sql="$sql"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Drop a database
|
# Drop a database
|
||||||
|
@ -105,12 +105,12 @@ ynh_psql_create_db() {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 3.5.0 or higher.
|
# Requires YunoHost version 3.5.0 or higher.
|
||||||
ynh_psql_drop_db() {
|
ynh_psql_drop_db() {
|
||||||
local db=$1
|
local db=$1
|
||||||
# First, force disconnection of all clients connected to the database
|
# First, force disconnection of all clients connected to the database
|
||||||
# https://stackoverflow.com/questions/17449420/postgresql-unable-to-drop-database-because-of-some-auto-connections-to-db
|
# https://stackoverflow.com/questions/17449420/postgresql-unable-to-drop-database-because-of-some-auto-connections-to-db
|
||||||
ynh_psql_execute_as_root --sql="REVOKE CONNECT ON DATABASE $db FROM public;" --database="$db"
|
ynh_psql_execute_as_root --sql="REVOKE CONNECT ON DATABASE $db FROM public;" --database="$db"
|
||||||
ynh_psql_execute_as_root --sql="SELECT pg_terminate_backend (pg_stat_activity.pid) FROM pg_stat_activity WHERE pg_stat_activity.datname = '$db' AND pid <> pg_backend_pid();" --database="$db"
|
ynh_psql_execute_as_root --sql="SELECT pg_terminate_backend (pg_stat_activity.pid) FROM pg_stat_activity WHERE pg_stat_activity.datname = '$db' AND pid <> pg_backend_pid();" --database="$db"
|
||||||
sudo --login --user=postgres dropdb $db
|
sudo --login --user=postgres dropdb $db
|
||||||
}
|
}
|
||||||
|
|
||||||
# Dump a database
|
# Dump a database
|
||||||
|
@ -123,14 +123,14 @@ ynh_psql_drop_db() {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 3.5.0 or higher.
|
# Requires YunoHost version 3.5.0 or higher.
|
||||||
ynh_psql_dump_db() {
|
ynh_psql_dump_db() {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=d
|
local legacy_args=d
|
||||||
local -A args_array=([d]=database=)
|
local -A args_array=([d]=database=)
|
||||||
local database
|
local database
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
|
|
||||||
sudo --login --user=postgres pg_dump "$database"
|
sudo --login --user=postgres pg_dump "$database"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Create a user
|
# Create a user
|
||||||
|
@ -143,9 +143,9 @@ ynh_psql_dump_db() {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 3.5.0 or higher.
|
# Requires YunoHost version 3.5.0 or higher.
|
||||||
ynh_psql_create_user() {
|
ynh_psql_create_user() {
|
||||||
local user=$1
|
local user=$1
|
||||||
local pwd=$2
|
local pwd=$2
|
||||||
ynh_psql_execute_as_root --sql="CREATE USER $user WITH ENCRYPTED PASSWORD '$pwd'"
|
ynh_psql_execute_as_root --sql="CREATE USER $user WITH ENCRYPTED PASSWORD '$pwd'"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Check if a psql user exists
|
# Check if a psql user exists
|
||||||
|
@ -153,18 +153,18 @@ ynh_psql_create_user() {
|
||||||
# usage: ynh_psql_user_exists --user=user
|
# usage: ynh_psql_user_exists --user=user
|
||||||
# | arg: -u, --user - the user for which to check existence
|
# | arg: -u, --user - the user for which to check existence
|
||||||
ynh_psql_user_exists() {
|
ynh_psql_user_exists() {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=u
|
local legacy_args=u
|
||||||
local -A args_array=([u]=user=)
|
local -A args_array=([u]=user=)
|
||||||
local user
|
local user
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
|
|
||||||
if ! sudo --login --user=postgres PGUSER="postgres" PGPASSWORD="$(cat $PSQL_ROOT_PWD_FILE)" psql -tAc "SELECT rolname FROM pg_roles WHERE rolname='$user';" | grep --quiet "$user" ; then
|
if ! sudo --login --user=postgres PGUSER="postgres" PGPASSWORD="$(cat $PSQL_ROOT_PWD_FILE)" psql -tAc "SELECT rolname FROM pg_roles WHERE rolname='$user';" | grep --quiet "$user" ; then
|
||||||
return 1
|
return 1
|
||||||
else
|
else
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Check if a psql database exists
|
# Check if a psql database exists
|
||||||
|
@ -172,18 +172,18 @@ ynh_psql_user_exists() {
|
||||||
# usage: ynh_psql_database_exists --database=database
|
# usage: ynh_psql_database_exists --database=database
|
||||||
# | arg: -d, --database - the database for which to check existence
|
# | arg: -d, --database - the database for which to check existence
|
||||||
ynh_psql_database_exists() {
|
ynh_psql_database_exists() {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=d
|
local legacy_args=d
|
||||||
local -A args_array=([d]=database=)
|
local -A args_array=([d]=database=)
|
||||||
local database
|
local database
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
|
|
||||||
if ! sudo --login --user=postgres PGUSER="postgres" PGPASSWORD="$(cat $PSQL_ROOT_PWD_FILE)" psql -tAc "SELECT datname FROM pg_database WHERE datname='$database';" | grep --quiet "$database"; then
|
if ! sudo --login --user=postgres PGUSER="postgres" PGPASSWORD="$(cat $PSQL_ROOT_PWD_FILE)" psql -tAc "SELECT datname FROM pg_database WHERE datname='$database';" | grep --quiet "$database"; then
|
||||||
return 1
|
return 1
|
||||||
else
|
else
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Drop a user
|
# Drop a user
|
||||||
|
@ -195,7 +195,7 @@ ynh_psql_database_exists() {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 3.5.0 or higher.
|
# Requires YunoHost version 3.5.0 or higher.
|
||||||
ynh_psql_drop_user() {
|
ynh_psql_drop_user() {
|
||||||
ynh_psql_execute_as_root --sql="DROP USER ${1};"
|
ynh_psql_execute_as_root --sql="DROP USER ${1};"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Create a database, an user and its password. Then store the password in the app's config
|
# Create a database, an user and its password. Then store the password in the app's config
|
||||||
|
@ -208,25 +208,25 @@ ynh_psql_drop_user() {
|
||||||
# | arg: -n, --db_name - Name of the database
|
# | arg: -n, --db_name - Name of the database
|
||||||
# | arg: -p, --db_pwd - Password of the database. If not given, a password will be generated
|
# | arg: -p, --db_pwd - Password of the database. If not given, a password will be generated
|
||||||
ynh_psql_setup_db() {
|
ynh_psql_setup_db() {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=unp
|
local legacy_args=unp
|
||||||
local -A args_array=([u]=db_user= [n]=db_name= [p]=db_pwd=)
|
local -A args_array=([u]=db_user= [n]=db_name= [p]=db_pwd=)
|
||||||
local db_user
|
local db_user
|
||||||
local db_name
|
local db_name
|
||||||
db_pwd=""
|
db_pwd=""
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
|
|
||||||
local new_db_pwd=$(ynh_string_random) # Generate a random password
|
local new_db_pwd=$(ynh_string_random) # Generate a random password
|
||||||
# If $db_pwd is not given, use new_db_pwd instead for db_pwd
|
# If $db_pwd is not given, use new_db_pwd instead for db_pwd
|
||||||
db_pwd="${db_pwd:-$new_db_pwd}"
|
db_pwd="${db_pwd:-$new_db_pwd}"
|
||||||
|
|
||||||
if ! ynh_psql_user_exists --user=$db_user; then
|
if ! ynh_psql_user_exists --user=$db_user; then
|
||||||
ynh_psql_create_user "$db_user" "$db_pwd"
|
ynh_psql_create_user "$db_user" "$db_pwd"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ynh_psql_create_db "$db_name" "$db_user" # Create the database
|
ynh_psql_create_db "$db_name" "$db_user" # Create the database
|
||||||
ynh_app_setting_set --app=$app --key=psqlpwd --value=$db_pwd # Store the password in the app's config
|
ynh_app_setting_set --app=$app --key=psqlpwd --value=$db_pwd # Store the password in the app's config
|
||||||
}
|
}
|
||||||
|
|
||||||
# Remove a database if it exists, and the associated user
|
# Remove a database if it exists, and the associated user
|
||||||
|
@ -235,26 +235,26 @@ ynh_psql_setup_db() {
|
||||||
# | arg: -u, --db_user - Owner of the database
|
# | arg: -u, --db_user - Owner of the database
|
||||||
# | arg: -n, --db_name - Name of the database
|
# | arg: -n, --db_name - Name of the database
|
||||||
ynh_psql_remove_db() {
|
ynh_psql_remove_db() {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=un
|
local legacy_args=un
|
||||||
local -A args_array=([u]=db_user= [n]=db_name=)
|
local -A args_array=([u]=db_user= [n]=db_name=)
|
||||||
local db_user
|
local db_user
|
||||||
local db_name
|
local db_name
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
|
|
||||||
if ynh_psql_database_exists --database=$db_name; then # Check if the database exists
|
if ynh_psql_database_exists --database=$db_name; then # Check if the database exists
|
||||||
ynh_psql_drop_db $db_name # Remove the database
|
ynh_psql_drop_db $db_name # Remove the database
|
||||||
else
|
else
|
||||||
ynh_print_warn --message="Database $db_name not found"
|
ynh_print_warn --message="Database $db_name not found"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Remove psql user if it exists
|
# Remove psql user if it exists
|
||||||
if ynh_psql_user_exists --user=$db_user; then
|
if ynh_psql_user_exists --user=$db_user; then
|
||||||
ynh_psql_drop_user $db_user
|
ynh_psql_drop_user $db_user
|
||||||
else
|
else
|
||||||
ynh_print_warn --message="User $db_user not found"
|
ynh_print_warn --message="User $db_user not found"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Create a master password and set up global settings
|
# Create a master password and set up global settings
|
||||||
|
@ -262,8 +262,8 @@ ynh_psql_remove_db() {
|
||||||
#
|
#
|
||||||
# usage: ynh_psql_test_if_first_run
|
# usage: ynh_psql_test_if_first_run
|
||||||
ynh_psql_test_if_first_run() {
|
ynh_psql_test_if_first_run() {
|
||||||
if [ -f "$PSQL_ROOT_PWD_FILE" ]; then
|
if [ -f "$PSQL_ROOT_PWD_FILE" ]; then
|
||||||
echo "PostgreSQL is already installed, no need to create master password"
|
echo "PostgreSQL is already installed, no need to create master password"
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -122,15 +122,15 @@ EOF
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.6.4 or higher.
|
# Requires YunoHost version 2.6.4 or higher.
|
||||||
ynh_webpath_available () {
|
ynh_webpath_available () {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=dp
|
local legacy_args=dp
|
||||||
local -A args_array=( [d]=domain= [p]=path_url= )
|
local -A args_array=( [d]=domain= [p]=path_url= )
|
||||||
local domain
|
local domain
|
||||||
local path_url
|
local path_url
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
|
|
||||||
yunohost domain url-available $domain $path_url
|
yunohost domain url-available $domain $path_url
|
||||||
}
|
}
|
||||||
|
|
||||||
# Register/book a web path for an app
|
# Register/book a web path for an app
|
||||||
|
@ -144,16 +144,16 @@ ynh_webpath_available () {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.6.4 or higher.
|
# Requires YunoHost version 2.6.4 or higher.
|
||||||
ynh_webpath_register () {
|
ynh_webpath_register () {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=adp
|
local legacy_args=adp
|
||||||
local -A args_array=( [a]=app= [d]=domain= [p]=path_url= )
|
local -A args_array=( [a]=app= [d]=domain= [p]=path_url= )
|
||||||
local app
|
local app
|
||||||
local domain
|
local domain
|
||||||
local path_url
|
local path_url
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
|
|
||||||
yunohost app register-url $app $domain $path_url
|
yunohost app register-url $app $domain $path_url
|
||||||
}
|
}
|
||||||
|
|
||||||
# Create a new permission for the app
|
# Create a new permission for the app
|
||||||
|
@ -178,8 +178,8 @@ ynh_webpath_register () {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 3.7.0 or higher.
|
# Requires YunoHost version 3.7.0 or higher.
|
||||||
ynh_permission_create() {
|
ynh_permission_create() {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=pua
|
local legacy_args=pua
|
||||||
local -A args_array=( [p]=permission= [u]=url= [a]=allowed= )
|
local -A args_array=( [p]=permission= [u]=url= [a]=allowed= )
|
||||||
local permission
|
local permission
|
||||||
local url
|
local url
|
||||||
|
@ -208,8 +208,8 @@ ynh_permission_create() {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 3.7.0 or higher.
|
# Requires YunoHost version 3.7.0 or higher.
|
||||||
ynh_permission_delete() {
|
ynh_permission_delete() {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=p
|
local legacy_args=p
|
||||||
local -A args_array=( [p]=permission= )
|
local -A args_array=( [p]=permission= )
|
||||||
local permission
|
local permission
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
|
@ -224,8 +224,8 @@ ynh_permission_delete() {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 3.7.0 or higher.
|
# Requires YunoHost version 3.7.0 or higher.
|
||||||
ynh_permission_exists() {
|
ynh_permission_exists() {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=p
|
local legacy_args=p
|
||||||
local -A args_array=( [p]=permission= )
|
local -A args_array=( [p]=permission= )
|
||||||
local permission
|
local permission
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
|
@ -241,8 +241,8 @@ ynh_permission_exists() {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 3.7.0 or higher.
|
# Requires YunoHost version 3.7.0 or higher.
|
||||||
ynh_permission_url() {
|
ynh_permission_url() {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=pu
|
local legacy_args=pu
|
||||||
local -A args_array=([p]=permission= [u]=url=)
|
local -A args_array=([p]=permission= [u]=url=)
|
||||||
local permission
|
local permission
|
||||||
local url
|
local url
|
||||||
|
@ -268,8 +268,8 @@ ynh_permission_url() {
|
||||||
# example: ynh_permission_update --permission admin --add samdoe --remove all_users
|
# example: ynh_permission_update --permission admin --add samdoe --remove all_users
|
||||||
# Requires YunoHost version 3.7.0 or higher.
|
# Requires YunoHost version 3.7.0 or higher.
|
||||||
ynh_permission_update() {
|
ynh_permission_update() {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=par
|
local legacy_args=par
|
||||||
local -A args_array=( [p]=permission= [a]=add= [r]=remove= )
|
local -A args_array=( [p]=permission= [a]=add= [r]=remove= )
|
||||||
local permission
|
local permission
|
||||||
local add
|
local add
|
||||||
|
|
|
@ -18,8 +18,8 @@ ynh_string_random() {
|
||||||
length=${length:-24}
|
length=${length:-24}
|
||||||
|
|
||||||
dd if=/dev/urandom bs=1 count=1000 2> /dev/null \
|
dd if=/dev/urandom bs=1 count=1000 2> /dev/null \
|
||||||
| tr -c -d 'A-Za-z0-9' \
|
| tr -c -d 'A-Za-z0-9' \
|
||||||
| sed -n 's/\(.\{'"$length"'\}\).*/\1/p'
|
| sed -n 's/\(.\{'"$length"'\}\).*/\1/p'
|
||||||
}
|
}
|
||||||
|
|
||||||
# Substitute/replace a string (or expression) by another in a file
|
# Substitute/replace a string (or expression) by another in a file
|
||||||
|
@ -35,21 +35,21 @@ ynh_string_random() {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.6.4 or higher.
|
# Requires YunoHost version 2.6.4 or higher.
|
||||||
ynh_replace_string () {
|
ynh_replace_string () {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=mrf
|
local legacy_args=mrf
|
||||||
local -A args_array=( [m]=match_string= [r]=replace_string= [f]=target_file= )
|
local -A args_array=( [m]=match_string= [r]=replace_string= [f]=target_file= )
|
||||||
local match_string
|
local match_string
|
||||||
local replace_string
|
local replace_string
|
||||||
local target_file
|
local target_file
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
|
|
||||||
local delimit=@
|
local delimit=@
|
||||||
# Escape the delimiter if it's in the string.
|
# Escape the delimiter if it's in the string.
|
||||||
match_string=${match_string//${delimit}/"\\${delimit}"}
|
match_string=${match_string//${delimit}/"\\${delimit}"}
|
||||||
replace_string=${replace_string//${delimit}/"\\${delimit}"}
|
replace_string=${replace_string//${delimit}/"\\${delimit}"}
|
||||||
|
|
||||||
sed --in-place "s${delimit}${match_string}${delimit}${replace_string}${delimit}g" "$target_file"
|
sed --in-place "s${delimit}${match_string}${delimit}${replace_string}${delimit}g" "$target_file"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Substitute/replace a special string by another in a file
|
# Substitute/replace a special string by another in a file
|
||||||
|
@ -64,24 +64,24 @@ ynh_replace_string () {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.7.7 or higher.
|
# Requires YunoHost version 2.7.7 or higher.
|
||||||
ynh_replace_special_string () {
|
ynh_replace_special_string () {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=mrf
|
local legacy_args=mrf
|
||||||
local -A args_array=( [m]=match_string= [r]=replace_string= [f]=target_file= )
|
local -A args_array=( [m]=match_string= [r]=replace_string= [f]=target_file= )
|
||||||
local match_string
|
local match_string
|
||||||
local replace_string
|
local replace_string
|
||||||
local target_file
|
local target_file
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
|
|
||||||
# Escape any backslash to preserve them as simple backslash.
|
# Escape any backslash to preserve them as simple backslash.
|
||||||
match_string=${match_string//\\/"\\\\"}
|
match_string=${match_string//\\/"\\\\"}
|
||||||
replace_string=${replace_string//\\/"\\\\"}
|
replace_string=${replace_string//\\/"\\\\"}
|
||||||
|
|
||||||
# Escape the & character, who has a special function in sed.
|
# Escape the & character, who has a special function in sed.
|
||||||
match_string=${match_string//&/"\&"}
|
match_string=${match_string//&/"\&"}
|
||||||
replace_string=${replace_string//&/"\&"}
|
replace_string=${replace_string//&/"\&"}
|
||||||
|
|
||||||
ynh_replace_string --match_string="$match_string" --replace_string="$replace_string" --target_file="$target_file"
|
ynh_replace_string --match_string="$match_string" --replace_string="$replace_string" --target_file="$target_file"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Sanitize a string intended to be the name of a database
|
# Sanitize a string intended to be the name of a database
|
||||||
|
@ -95,15 +95,15 @@ ynh_replace_special_string () {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.2.4 or higher.
|
# Requires YunoHost version 2.2.4 or higher.
|
||||||
ynh_sanitize_dbid () {
|
ynh_sanitize_dbid () {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=n
|
local legacy_args=n
|
||||||
local -A args_array=( [n]=db_name= )
|
local -A args_array=( [n]=db_name= )
|
||||||
local db_name
|
local db_name
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
|
|
||||||
# We should avoid having - and . in the name of databases. They are replaced by _
|
# We should avoid having - and . in the name of databases. They are replaced by _
|
||||||
echo ${db_name//[-.]/_}
|
echo ${db_name//[-.]/_}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Normalize the url path syntax
|
# Normalize the url path syntax
|
||||||
|
@ -123,19 +123,19 @@ ynh_sanitize_dbid () {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.6.4 or higher.
|
# Requires YunoHost version 2.6.4 or higher.
|
||||||
ynh_normalize_url_path () {
|
ynh_normalize_url_path () {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=p
|
local legacy_args=p
|
||||||
local -A args_array=( [p]=path_url= )
|
local -A args_array=( [p]=path_url= )
|
||||||
local path_url
|
local path_url
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
|
|
||||||
test -n "$path_url" || ynh_die --message="ynh_normalize_url_path expect a URL path as first argument and received nothing."
|
test -n "$path_url" || ynh_die --message="ynh_normalize_url_path expect a URL path as first argument and received nothing."
|
||||||
if [ "${path_url:0:1}" != "/" ]; then # If the first character is not a /
|
if [ "${path_url:0:1}" != "/" ]; then # If the first character is not a /
|
||||||
path_url="/$path_url" # Add / at begin of path variable
|
path_url="/$path_url" # Add / at begin of path variable
|
||||||
fi
|
fi
|
||||||
if [ "${path_url:${#path_url}-1}" == "/" ] && [ ${#path_url} -gt 1 ]; then # If the last character is a / and that not the only character.
|
if [ "${path_url:${#path_url}-1}" == "/" ] && [ ${#path_url} -gt 1 ]; then # If the last character is a / and that not the only character.
|
||||||
path_url="${path_url:0:${#path_url}-1}" # Delete the last character
|
path_url="${path_url:0:${#path_url}-1}" # Delete the last character
|
||||||
fi
|
fi
|
||||||
echo $path_url
|
echo $path_url
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,33 +16,33 @@
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.7.2 or higher.
|
# Requires YunoHost version 2.7.2 or higher.
|
||||||
ynh_add_systemd_config () {
|
ynh_add_systemd_config () {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=st
|
local legacy_args=st
|
||||||
local -A args_array=( [s]=service= [t]=template= )
|
local -A args_array=( [s]=service= [t]=template= )
|
||||||
local service
|
local service
|
||||||
local template
|
local template
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
local service="${service:-$app}"
|
local service="${service:-$app}"
|
||||||
local template="${template:-systemd.service}"
|
local template="${template:-systemd.service}"
|
||||||
|
|
||||||
finalsystemdconf="/etc/systemd/system/$service.service"
|
finalsystemdconf="/etc/systemd/system/$service.service"
|
||||||
ynh_backup_if_checksum_is_different --file="$finalsystemdconf"
|
ynh_backup_if_checksum_is_different --file="$finalsystemdconf"
|
||||||
cp ../conf/$template "$finalsystemdconf"
|
cp ../conf/$template "$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.
|
# 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
|
# Substitute in a nginx config file only if the variable is not empty
|
||||||
if test -n "${final_path:-}"; then
|
if test -n "${final_path:-}"; then
|
||||||
ynh_replace_string --match_string="__FINALPATH__" --replace_string="$final_path" --target_file="$finalsystemdconf"
|
ynh_replace_string --match_string="__FINALPATH__" --replace_string="$final_path" --target_file="$finalsystemdconf"
|
||||||
fi
|
fi
|
||||||
if test -n "${app:-}"; then
|
if test -n "${app:-}"; then
|
||||||
ynh_replace_string --match_string="__APP__" --replace_string="$app" --target_file="$finalsystemdconf"
|
ynh_replace_string --match_string="__APP__" --replace_string="$app" --target_file="$finalsystemdconf"
|
||||||
fi
|
fi
|
||||||
ynh_store_file_checksum --file="$finalsystemdconf"
|
ynh_store_file_checksum --file="$finalsystemdconf"
|
||||||
|
|
||||||
chown root: "$finalsystemdconf"
|
chown root: "$finalsystemdconf"
|
||||||
systemctl enable $service
|
systemctl enable $service
|
||||||
systemctl daemon-reload
|
systemctl daemon-reload
|
||||||
}
|
}
|
||||||
|
|
||||||
# Remove the dedicated systemd config
|
# Remove the dedicated systemd config
|
||||||
|
@ -52,21 +52,21 @@ ynh_add_systemd_config () {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.7.2 or higher.
|
# Requires YunoHost version 2.7.2 or higher.
|
||||||
ynh_remove_systemd_config () {
|
ynh_remove_systemd_config () {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=s
|
local legacy_args=s
|
||||||
local -A args_array=( [s]=service= )
|
local -A args_array=( [s]=service= )
|
||||||
local service
|
local service
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
local service="${service:-$app}"
|
local service="${service:-$app}"
|
||||||
|
|
||||||
local finalsystemdconf="/etc/systemd/system/$service.service"
|
local finalsystemdconf="/etc/systemd/system/$service.service"
|
||||||
if [ -e "$finalsystemdconf" ]; then
|
if [ -e "$finalsystemdconf" ]; then
|
||||||
ynh_systemd_action --service_name=$service --action=stop
|
ynh_systemd_action --service_name=$service --action=stop
|
||||||
systemctl disable $service
|
systemctl disable $service
|
||||||
ynh_secure_remove --file="$finalsystemdconf"
|
ynh_secure_remove --file="$finalsystemdconf"
|
||||||
systemctl daemon-reload
|
systemctl daemon-reload
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Start (or other actions) a service, print a log in case of failure and optionnaly wait until the service is completely started
|
# Start (or other actions) a service, print a log in case of failure and optionnaly wait until the service is completely started
|
||||||
|
@ -172,7 +172,7 @@ ynh_clean_check_starting () {
|
||||||
fi
|
fi
|
||||||
if [ -n "$templog" ]
|
if [ -n "$templog" ]
|
||||||
then
|
then
|
||||||
ynh_secure_remove "$templog" 2>&1
|
ynh_secure_remove "$templog" 2>&1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -51,7 +51,7 @@ ynh_user_get_info() {
|
||||||
# Requires YunoHost version 2.4.0 or higher.
|
# Requires YunoHost version 2.4.0 or higher.
|
||||||
ynh_user_list() {
|
ynh_user_list() {
|
||||||
yunohost user list --output-as plain --quiet \
|
yunohost user list --output-as plain --quiet \
|
||||||
| awk '/^##username$/{getline; print}'
|
| awk '/^##username$/{getline; print}'
|
||||||
}
|
}
|
||||||
|
|
||||||
# Check if a user exists on the system
|
# Check if a user exists on the system
|
||||||
|
@ -101,31 +101,31 @@ ynh_system_group_exists() {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.6.4 or higher.
|
# Requires YunoHost version 2.6.4 or higher.
|
||||||
ynh_system_user_create () {
|
ynh_system_user_create () {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=uhs
|
local legacy_args=uhs
|
||||||
local -A args_array=( [u]=username= [h]=home_dir= [s]=use_shell )
|
local -A args_array=( [u]=username= [h]=home_dir= [s]=use_shell )
|
||||||
local username
|
local username
|
||||||
local home_dir
|
local home_dir
|
||||||
local use_shell
|
local use_shell
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
use_shell="${use_shell:-0}"
|
use_shell="${use_shell:-0}"
|
||||||
home_dir="${home_dir:-}"
|
home_dir="${home_dir:-}"
|
||||||
|
|
||||||
if ! ynh_system_user_exists "$username" # Check if the user exists on the system
|
if ! ynh_system_user_exists "$username" # Check if the user exists on the system
|
||||||
then # If the user doesn't exist
|
then # If the user doesn't exist
|
||||||
if [ -n "$home_dir" ]; then # If a home dir is mentioned
|
if [ -n "$home_dir" ]; then # If a home dir is mentioned
|
||||||
local user_home_dir="-d $home_dir"
|
local user_home_dir="-d $home_dir"
|
||||||
else
|
else
|
||||||
local user_home_dir="--no-create-home"
|
local user_home_dir="--no-create-home"
|
||||||
fi
|
fi
|
||||||
if [ $use_shell -eq 1 ]; then # If we want a shell for the user
|
if [ $use_shell -eq 1 ]; then # If we want a shell for the user
|
||||||
local shell="" # Use default shell
|
local shell="" # Use default shell
|
||||||
else
|
else
|
||||||
local shell="--shell /usr/sbin/nologin"
|
local shell="--shell /usr/sbin/nologin"
|
||||||
fi
|
fi
|
||||||
useradd $user_home_dir --system --user-group $username $shell || ynh_die "Unable to create $username system account"
|
useradd $user_home_dir --system --user-group $username $shell || ynh_die "Unable to create $username system account"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Delete a system user
|
# Delete a system user
|
||||||
|
@ -145,14 +145,14 @@ ynh_system_user_delete () {
|
||||||
# Check if the user exists on the system
|
# Check if the user exists on the system
|
||||||
if ynh_system_user_exists "$username"
|
if ynh_system_user_exists "$username"
|
||||||
then
|
then
|
||||||
deluser $username
|
deluser $username
|
||||||
else
|
else
|
||||||
ynh_print_warn --message="The user $username was not found"
|
ynh_print_warn --message="The user $username was not found"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Check if the group exists on the system
|
# Check if the group exists on the system
|
||||||
if ynh_system_group_exists "$username"
|
if ynh_system_group_exists "$username"
|
||||||
then
|
then
|
||||||
delgroup $username
|
delgroup $username
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,22 +17,22 @@
|
||||||
# It prints a warning to inform that the script was failed, and execute the ynh_clean_setup function if used in the app script
|
# It prints a warning to inform that the script was failed, and execute the ynh_clean_setup function if used in the app script
|
||||||
#
|
#
|
||||||
ynh_exit_properly () {
|
ynh_exit_properly () {
|
||||||
local exit_code=$?
|
local exit_code=$?
|
||||||
if [ "$exit_code" -eq 0 ]; then
|
if [ "$exit_code" -eq 0 ]; then
|
||||||
exit 0 # Exit without error if the script ended correctly
|
exit 0 # Exit without error if the script ended correctly
|
||||||
fi
|
fi
|
||||||
|
|
||||||
trap '' EXIT # Ignore new exit signals
|
trap '' EXIT # Ignore new exit signals
|
||||||
set +eu # Do not exit anymore if a command fail or if a variable is empty
|
set +eu # Do not exit anymore if a command fail or if a variable is empty
|
||||||
|
|
||||||
# Small tempo to avoid the next message being mixed up with other DEBUG messages
|
# Small tempo to avoid the next message being mixed up with other DEBUG messages
|
||||||
sleep 0.5
|
sleep 0.5
|
||||||
|
|
||||||
if type -t ynh_clean_setup > /dev/null; then # Check if the function exist in the app script.
|
if type -t ynh_clean_setup > /dev/null; then # Check if the function exist in the app script.
|
||||||
ynh_clean_setup # Call the function to do specific cleaning for the app.
|
ynh_clean_setup # Call the function to do specific cleaning for the app.
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ynh_die # Exit with error status
|
ynh_die # Exit with error status
|
||||||
}
|
}
|
||||||
|
|
||||||
# Exits if an error occurs during the execution of the script.
|
# Exits if an error occurs during the execution of the script.
|
||||||
|
@ -46,8 +46,8 @@ ynh_exit_properly () {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.6.4 or higher.
|
# Requires YunoHost version 2.6.4 or higher.
|
||||||
ynh_abort_if_errors () {
|
ynh_abort_if_errors () {
|
||||||
set -eu # Exit if a command fail, and if a variable is used unset.
|
set -eu # Exit if a command fail, and if a variable is used unset.
|
||||||
trap ynh_exit_properly EXIT # Capturing exit signals on shell script
|
trap ynh_exit_properly EXIT # Capturing exit signals on shell script
|
||||||
}
|
}
|
||||||
|
|
||||||
# Download, check integrity, uncompress and patch the source from app.src
|
# Download, check integrity, uncompress and patch the source from app.src
|
||||||
|
@ -256,13 +256,13 @@ ynh_local_curl () {
|
||||||
# | arg: some_template - Template file to be rendered
|
# | arg: some_template - Template file to be rendered
|
||||||
# | arg: output_path - The path where the output will be redirected to
|
# | arg: output_path - The path where the output will be redirected to
|
||||||
ynh_render_template() {
|
ynh_render_template() {
|
||||||
local template_path=$1
|
local template_path=$1
|
||||||
local output_path=$2
|
local output_path=$2
|
||||||
mkdir -p "$(dirname $output_path)"
|
mkdir -p "$(dirname $output_path)"
|
||||||
# Taken from https://stackoverflow.com/a/35009576
|
# Taken from https://stackoverflow.com/a/35009576
|
||||||
python2.7 -c 'import os, sys, jinja2; sys.stdout.write(
|
python2.7 -c 'import os, sys, jinja2; sys.stdout.write(
|
||||||
jinja2.Template(sys.stdin.read()
|
jinja2.Template(sys.stdin.read()
|
||||||
).render(os.environ));' < $template_path > $output_path
|
).render(os.environ));' < $template_path > $output_path
|
||||||
}
|
}
|
||||||
|
|
||||||
# Fetch the Debian release codename
|
# Fetch the Debian release codename
|
||||||
|
@ -272,7 +272,7 @@ ynh_render_template() {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.7.12 or higher.
|
# Requires YunoHost version 2.7.12 or higher.
|
||||||
ynh_get_debian_release () {
|
ynh_get_debian_release () {
|
||||||
echo $(lsb_release --codename --short)
|
echo $(lsb_release --codename --short)
|
||||||
}
|
}
|
||||||
|
|
||||||
# Create a directory under /tmp
|
# Create a directory under /tmp
|
||||||
|
@ -376,20 +376,20 @@ ynh_get_plain_key() {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 3.5.0 or higher.
|
# Requires YunoHost version 3.5.0 or higher.
|
||||||
ynh_read_manifest () {
|
ynh_read_manifest () {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=mk
|
local legacy_args=mk
|
||||||
local -A args_array=( [m]=manifest= [k]=manifest_key= )
|
local -A args_array=( [m]=manifest= [k]=manifest_key= )
|
||||||
local manifest
|
local manifest
|
||||||
local manifest_key
|
local manifest_key
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
|
|
||||||
if [ ! -e "$manifest" ]; then
|
if [ ! -e "$manifest" ]; then
|
||||||
# If the manifest isn't found, try the common place for backup and restore script.
|
# If the manifest isn't found, try the common place for backup and restore script.
|
||||||
manifest="../settings/manifest.json"
|
manifest="../settings/manifest.json"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
jq ".$manifest_key" "$manifest" --raw-output
|
jq ".$manifest_key" "$manifest" --raw-output
|
||||||
}
|
}
|
||||||
|
|
||||||
# Read the upstream version from the manifest
|
# Read the upstream version from the manifest
|
||||||
|
@ -458,32 +458,32 @@ ynh_app_package_version () {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 3.5.0 or higher.
|
# Requires YunoHost version 3.5.0 or higher.
|
||||||
ynh_check_app_version_changed () {
|
ynh_check_app_version_changed () {
|
||||||
local force_upgrade=${YNH_FORCE_UPGRADE:-0}
|
local force_upgrade=${YNH_FORCE_UPGRADE:-0}
|
||||||
local package_check=${PACKAGE_CHECK_EXEC:-0}
|
local package_check=${PACKAGE_CHECK_EXEC:-0}
|
||||||
|
|
||||||
# By default, upstream app version has changed
|
# By default, upstream app version has changed
|
||||||
local return_value="UPGRADE_APP"
|
local return_value="UPGRADE_APP"
|
||||||
|
|
||||||
local current_version=$(ynh_read_manifest --manifest="/etc/yunohost/apps/$YNH_APP_INSTANCE_NAME/manifest.json" --manifest_key="version" || echo 1.0)
|
local current_version=$(ynh_read_manifest --manifest="/etc/yunohost/apps/$YNH_APP_INSTANCE_NAME/manifest.json" --manifest_key="version" || echo 1.0)
|
||||||
local current_upstream_version="$(ynh_app_upstream_version --manifest="/etc/yunohost/apps/$YNH_APP_INSTANCE_NAME/manifest.json")"
|
local current_upstream_version="$(ynh_app_upstream_version --manifest="/etc/yunohost/apps/$YNH_APP_INSTANCE_NAME/manifest.json")"
|
||||||
local update_version=$(ynh_read_manifest --manifest="../manifest.json" --manifest_key="version" || echo 1.0)
|
local update_version=$(ynh_read_manifest --manifest="../manifest.json" --manifest_key="version" || echo 1.0)
|
||||||
local update_upstream_version="$(ynh_app_upstream_version)"
|
local update_upstream_version="$(ynh_app_upstream_version)"
|
||||||
|
|
||||||
if [ "$current_version" == "$update_version" ] ; then
|
if [ "$current_version" == "$update_version" ] ; then
|
||||||
# Complete versions are the same
|
# Complete versions are the same
|
||||||
if [ "$force_upgrade" != "0" ]
|
if [ "$force_upgrade" != "0" ]
|
||||||
then
|
then
|
||||||
ynh_print_info --message="Upgrade forced by YNH_FORCE_UPGRADE."
|
ynh_print_info --message="Upgrade forced by YNH_FORCE_UPGRADE."
|
||||||
unset YNH_FORCE_UPGRADE
|
unset YNH_FORCE_UPGRADE
|
||||||
elif [ "$package_check" != "0" ]
|
elif [ "$package_check" != "0" ]
|
||||||
then
|
then
|
||||||
ynh_print_info --message="Upgrade forced for package check."
|
ynh_print_info --message="Upgrade forced for package check."
|
||||||
else
|
else
|
||||||
ynh_die "Up-to-date, nothing to do" 0
|
ynh_die "Up-to-date, nothing to do" 0
|
||||||
fi
|
fi
|
||||||
elif [ "$current_upstream_version" == "$update_upstream_version" ] ; then
|
elif [ "$current_upstream_version" == "$update_upstream_version" ] ; then
|
||||||
# Upstream versions are the same, only YunoHost package versions differ
|
# Upstream versions are the same, only YunoHost package versions differ
|
||||||
return_value="UPGRADE_PACKAGE"
|
return_value="UPGRADE_PACKAGE"
|
||||||
fi
|
fi
|
||||||
echo $return_value
|
echo $return_value
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue