mirror of
https://github.com/YunoHost/yunohost.git
synced 2024-09-03 20:06:10 +02:00
helpersv1: Tabs to spaces
This commit is contained in:
parent
ef17082768
commit
38b39ebaea
7 changed files with 318 additions and 318 deletions
|
@ -7,52 +7,52 @@
|
||||||
#
|
#
|
||||||
# Requires YunoHost version *.*.* or higher.
|
# Requires YunoHost version *.*.* or higher.
|
||||||
ynh_install_apps() {
|
ynh_install_apps() {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=a
|
local legacy_args=a
|
||||||
local -A args_array=([a]=apps=)
|
local -A args_array=([a]=apps=)
|
||||||
local apps
|
local apps
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
|
|
||||||
# Split the list of apps in an array
|
# Split the list of apps in an array
|
||||||
local apps_list=($(echo $apps | tr " " "\n"))
|
local apps_list=($(echo $apps | tr " " "\n"))
|
||||||
local apps_dependencies=""
|
local apps_dependencies=""
|
||||||
|
|
||||||
# For each app
|
# For each app
|
||||||
for one_app_and_its_args in "${apps_list[@]}"
|
for one_app_and_its_args in "${apps_list[@]}"
|
||||||
do
|
do
|
||||||
# Retrieve the name of the app (part before ?)
|
# Retrieve the name of the app (part before ?)
|
||||||
local one_app=$(cut -d "?" -f1 <<< "$one_app_and_its_args")
|
local one_app=$(cut -d "?" -f1 <<< "$one_app_and_its_args")
|
||||||
[ -z "$one_app" ] && ynh_die --message="You didn't provided a YunoHost app to install"
|
[ -z "$one_app" ] && ynh_die --message="You didn't provided a YunoHost app to install"
|
||||||
|
|
||||||
yunohost tools update apps
|
yunohost tools update apps
|
||||||
|
|
||||||
# Installing or upgrading the app depending if it's installed or not
|
# Installing or upgrading the app depending if it's installed or not
|
||||||
if ! yunohost app list --output-as json --quiet | jq -e --arg id $one_app '.apps[] | select(.id == $id)' >/dev/null
|
if ! yunohost app list --output-as json --quiet | jq -e --arg id $one_app '.apps[] | select(.id == $id)' >/dev/null
|
||||||
then
|
then
|
||||||
# Retrieve the arguments of the app (part after ?)
|
# Retrieve the arguments of the app (part after ?)
|
||||||
local one_argument=""
|
local one_argument=""
|
||||||
if [[ "$one_app_and_its_args" == *"?"* ]]; then
|
if [[ "$one_app_and_its_args" == *"?"* ]]; then
|
||||||
one_argument=$(cut -d "?" -f2- <<< "$one_app_and_its_args")
|
one_argument=$(cut -d "?" -f2- <<< "$one_app_and_its_args")
|
||||||
one_argument="--args $one_argument"
|
one_argument="--args $one_argument"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Install the app with its arguments
|
# Install the app with its arguments
|
||||||
yunohost app install $one_app $one_argument
|
yunohost app install $one_app $one_argument
|
||||||
else
|
else
|
||||||
# Upgrade the app
|
# Upgrade the app
|
||||||
yunohost app upgrade $one_app
|
yunohost app upgrade $one_app
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -z "$apps_dependencies" ]
|
if [ ! -z "$apps_dependencies" ]
|
||||||
then
|
then
|
||||||
apps_dependencies="$apps_dependencies, $one_app"
|
apps_dependencies="$apps_dependencies, $one_app"
|
||||||
else
|
else
|
||||||
apps_dependencies="$one_app"
|
apps_dependencies="$one_app"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
ynh_app_setting_set --app=$app --key=apps_dependencies --value="$apps_dependencies"
|
ynh_app_setting_set --app=$app --key=apps_dependencies --value="$apps_dependencies"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Remove other YunoHost apps
|
# Remove other YunoHost apps
|
||||||
|
@ -63,53 +63,53 @@ ynh_install_apps() {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version *.*.* or higher.
|
# Requires YunoHost version *.*.* or higher.
|
||||||
ynh_remove_apps() {
|
ynh_remove_apps() {
|
||||||
# Retrieve the apps dependencies of the app
|
# Retrieve the apps dependencies of the app
|
||||||
local apps_dependencies=$(ynh_app_setting_get --app=$app --key=apps_dependencies)
|
local apps_dependencies=$(ynh_app_setting_get --app=$app --key=apps_dependencies)
|
||||||
ynh_app_setting_delete --app=$app --key=apps_dependencies
|
ynh_app_setting_delete --app=$app --key=apps_dependencies
|
||||||
|
|
||||||
if [ ! -z "$apps_dependencies" ]
|
if [ ! -z "$apps_dependencies" ]
|
||||||
then
|
then
|
||||||
# Split the list of apps dependencies in an array
|
# Split the list of apps dependencies in an array
|
||||||
local apps_dependencies_list=($(echo $apps_dependencies | tr ", " "\n"))
|
local apps_dependencies_list=($(echo $apps_dependencies | tr ", " "\n"))
|
||||||
|
|
||||||
# For each apps dependencies
|
# For each apps dependencies
|
||||||
for one_app in "${apps_dependencies_list[@]}"
|
for one_app in "${apps_dependencies_list[@]}"
|
||||||
do
|
do
|
||||||
# Retrieve the list of installed apps
|
# Retrieve the list of installed apps
|
||||||
local installed_apps_list=$(yunohost app list --output-as json --quiet | jq -r .apps[].id)
|
local installed_apps_list=$(yunohost app list --output-as json --quiet | jq -r .apps[].id)
|
||||||
local required_by=""
|
local required_by=""
|
||||||
local installed_app_required_by=""
|
local installed_app_required_by=""
|
||||||
|
|
||||||
# For each other installed app
|
# For each other installed app
|
||||||
for one_installed_app in $installed_apps_list
|
for one_installed_app in $installed_apps_list
|
||||||
do
|
do
|
||||||
# Retrieve the other apps dependencies
|
# Retrieve the other apps dependencies
|
||||||
one_installed_apps_dependencies=$(ynh_app_setting_get --app=$one_installed_app --key=apps_dependencies)
|
one_installed_apps_dependencies=$(ynh_app_setting_get --app=$one_installed_app --key=apps_dependencies)
|
||||||
if [ ! -z "$one_installed_apps_dependencies" ]
|
if [ ! -z "$one_installed_apps_dependencies" ]
|
||||||
then
|
then
|
||||||
one_installed_apps_dependencies_list=($(echo $one_installed_apps_dependencies | tr ", " "\n"))
|
one_installed_apps_dependencies_list=($(echo $one_installed_apps_dependencies | tr ", " "\n"))
|
||||||
|
|
||||||
# For each dependency of the other apps
|
# For each dependency of the other apps
|
||||||
for one_installed_app_dependency in "${one_installed_apps_dependencies_list[@]}"
|
for one_installed_app_dependency in "${one_installed_apps_dependencies_list[@]}"
|
||||||
do
|
do
|
||||||
if [[ $one_installed_app_dependency == $one_app ]]; then
|
if [[ $one_installed_app_dependency == $one_app ]]; then
|
||||||
required_by="$required_by $one_installed_app"
|
required_by="$required_by $one_installed_app"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
# If $one_app is no more required
|
# If $one_app is no more required
|
||||||
if [[ -z "$required_by" ]]
|
if [[ -z "$required_by" ]]
|
||||||
then
|
then
|
||||||
# Remove $one_app
|
# Remove $one_app
|
||||||
ynh_print_info --message="Removing of $one_app"
|
ynh_print_info --message="Removing of $one_app"
|
||||||
yunohost app remove $one_app --purge
|
yunohost app remove $one_app --purge
|
||||||
else
|
else
|
||||||
ynh_print_info --message="$one_app was not removed because it's still required by${required_by}"
|
ynh_print_info --message="$one_app was not removed because it's still required by${required_by}"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Spawn a Bash shell with the app environment loaded
|
# Spawn a Bash shell with the app environment loaded
|
||||||
|
|
|
@ -372,7 +372,7 @@ ynh_add_app_dependencies() {
|
||||||
#
|
#
|
||||||
# Requires YunoHost version 2.6.4 or higher.
|
# Requires YunoHost version 2.6.4 or higher.
|
||||||
ynh_remove_app_dependencies() {
|
ynh_remove_app_dependencies() {
|
||||||
local dep_app=${app//_/-} # Replace all '_' by '-'
|
local dep_app=${app//_/-} # Replace all '_' by '-'
|
||||||
|
|
||||||
local current_dependencies=""
|
local current_dependencies=""
|
||||||
if ynh_package_is_installed --package="${dep_app}-ynh-deps"; then
|
if ynh_package_is_installed --package="${dep_app}-ynh-deps"; then
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
# | arg: $@ - Simply "$@" to tranfert all the positionnal arguments to the function
|
# | arg: $@ - Simply "$@" to tranfert all the positionnal arguments to the function
|
||||||
#
|
#
|
||||||
# This helper need an array, named "args_array" with all the arguments used by the helper
|
# This helper need an array, named "args_array" with all the arguments used by the helper
|
||||||
# that want to use ynh_handle_getopts_args
|
# that want to use ynh_handle_getopts_args
|
||||||
# Be carreful, this array has to be an associative array, as the following example:
|
# Be carreful, this array has to be an associative array, as the following example:
|
||||||
# local -A args_array=( [a]=arg1 [b]=arg2= [c]=arg3 )
|
# local -A args_array=( [a]=arg1 [b]=arg2= [c]=arg3 )
|
||||||
# Let's explain this array:
|
# Let's explain this array:
|
||||||
|
|
|
@ -271,9 +271,9 @@ ynh_script_progression() {
|
||||||
|
|
||||||
# Always activate time when running inside CI tests
|
# Always activate time when running inside CI tests
|
||||||
if [ ${PACKAGE_CHECK_EXEC:-0} -eq 1 ]; then
|
if [ ${PACKAGE_CHECK_EXEC:-0} -eq 1 ]; then
|
||||||
time=${time:-1}
|
time=${time:-1}
|
||||||
else
|
else
|
||||||
time=${time:-0}
|
time=${time:-0}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
last=${last:-0}
|
last=${last:-0}
|
||||||
|
@ -298,8 +298,8 @@ ynh_script_progression() {
|
||||||
local weight_values=$(($(echo "$weight_valuesA" "$weight_valuesB" | grep -v -E '^\s*$' | tr '\n' '+' | sed 's/+$/+0/g')))
|
local weight_values=$(($(echo "$weight_valuesA" "$weight_valuesB" | grep -v -E '^\s*$' | tr '\n' '+' | sed 's/+$/+0/g')))
|
||||||
|
|
||||||
# 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
|
||||||
|
|
||||||
|
|
|
@ -6,100 +6,100 @@
|
||||||
# example: ynh_mongo_exec --command="db.getMongo().getDBNames().indexOf(\"wekan\")"
|
# example: ynh_mongo_exec --command="db.getMongo().getDBNames().indexOf(\"wekan\")"
|
||||||
#
|
#
|
||||||
# usage: ynh_mongo_exec [--user=user] [--password=password] [--authenticationdatabase=authenticationdatabase] [--database=database] [--host=host] [--port=port] --command="command" [--eval]
|
# usage: ynh_mongo_exec [--user=user] [--password=password] [--authenticationdatabase=authenticationdatabase] [--database=database] [--host=host] [--port=port] --command="command" [--eval]
|
||||||
# | arg: -u, --user= - The user name to connect as
|
# | arg: -u, --user= - The user name to connect as
|
||||||
# | arg: -p, --password= - The user password
|
# | arg: -p, --password= - The user password
|
||||||
# | arg: -d, --authenticationdatabase= - The authenticationdatabase to connect to
|
# | arg: -d, --authenticationdatabase= - The authenticationdatabase to connect to
|
||||||
# | arg: -d, --database= - The database to connect to
|
# | arg: -d, --database= - The database to connect to
|
||||||
# | arg: -h, --host= - The host to connect to
|
# | arg: -h, --host= - The host to connect to
|
||||||
# | arg: -P, --port= - The port to connect to
|
# | arg: -P, --port= - The port to connect to
|
||||||
# | arg: -c, --command= - The command to evaluate
|
# | arg: -c, --command= - The command to evaluate
|
||||||
# | arg: -e, --eval - Evaluate instead of execute the command.
|
# | arg: -e, --eval - Evaluate instead of execute the command.
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
ynh_mongo_exec() {
|
ynh_mongo_exec() {
|
||||||
# Declare an array to define the options of this helper.
|
# Declare an array to define the options of this helper.
|
||||||
local legacy_args=upadhPce
|
local legacy_args=upadhPce
|
||||||
local -A args_array=( [u]=user= [p]=password= [a]=authenticationdatabase= [d]=database= [h]=host= [P]=port= [c]=command= [e]=eval )
|
local -A args_array=( [u]=user= [p]=password= [a]=authenticationdatabase= [d]=database= [h]=host= [P]=port= [c]=command= [e]=eval )
|
||||||
local user
|
local user
|
||||||
local password
|
local password
|
||||||
local authenticationdatabase
|
local authenticationdatabase
|
||||||
local database
|
local database
|
||||||
local host
|
local host
|
||||||
local port
|
local port
|
||||||
local command
|
local command
|
||||||
local eval
|
local eval
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
user="${user:-}"
|
user="${user:-}"
|
||||||
password="${password:-}"
|
password="${password:-}"
|
||||||
authenticationdatabase="${authenticationdatabase:-}"
|
authenticationdatabase="${authenticationdatabase:-}"
|
||||||
database="${database:-}"
|
database="${database:-}"
|
||||||
host="${host:-}"
|
host="${host:-}"
|
||||||
port="${port:-}"
|
port="${port:-}"
|
||||||
eval=${eval:-0}
|
eval=${eval:-0}
|
||||||
|
|
||||||
# If user is provided
|
# If user is provided
|
||||||
if [ -n "$user" ]
|
if [ -n "$user" ]
|
||||||
then
|
then
|
||||||
user="--username=$user"
|
user="--username=$user"
|
||||||
|
|
||||||
# If password is provided
|
# If password is provided
|
||||||
if [ -n "$password" ]
|
if [ -n "$password" ]
|
||||||
then
|
then
|
||||||
password="--password=$password"
|
password="--password=$password"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# If authenticationdatabase is provided
|
# If authenticationdatabase is provided
|
||||||
if [ -n "$authenticationdatabase" ]
|
if [ -n "$authenticationdatabase" ]
|
||||||
then
|
then
|
||||||
authenticationdatabase="--authenticationDatabase=$authenticationdatabase"
|
authenticationdatabase="--authenticationDatabase=$authenticationdatabase"
|
||||||
else
|
else
|
||||||
authenticationdatabase="--authenticationDatabase=admin"
|
authenticationdatabase="--authenticationDatabase=admin"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
password=""
|
password=""
|
||||||
authenticationdatabase=""
|
authenticationdatabase=""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# If host is provided
|
# If host is provided
|
||||||
if [ -n "$host" ]
|
if [ -n "$host" ]
|
||||||
then
|
then
|
||||||
host="--host=$host"
|
host="--host=$host"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# If port is provided
|
# If port is provided
|
||||||
if [ -n "$port" ]
|
if [ -n "$port" ]
|
||||||
then
|
then
|
||||||
port="--port=$port"
|
port="--port=$port"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# If eval is not provided
|
# If eval is not provided
|
||||||
if [ $eval -eq 0 ]
|
if [ $eval -eq 0 ]
|
||||||
then
|
then
|
||||||
# If database is provided
|
# If database is provided
|
||||||
if [ -n "$database" ]
|
if [ -n "$database" ]
|
||||||
then
|
then
|
||||||
database="use $database"
|
database="use $database"
|
||||||
else
|
else
|
||||||
database=""
|
database=""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mongosh --quiet --username $user --password $password --authenticationDatabase $authenticationdatabase --host $host --port $port <<EOF
|
mongosh --quiet --username $user --password $password --authenticationDatabase $authenticationdatabase --host $host --port $port <<EOF
|
||||||
$database
|
$database
|
||||||
${command}
|
${command}
|
||||||
quit()
|
quit()
|
||||||
EOF
|
EOF
|
||||||
else
|
else
|
||||||
# If database is provided
|
# If database is provided
|
||||||
if [ -n "$database" ]
|
if [ -n "$database" ]
|
||||||
then
|
then
|
||||||
database="$database"
|
database="$database"
|
||||||
else
|
else
|
||||||
database=""
|
database=""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mongosh --quiet $database --username $user --password $password --authenticationDatabase $authenticationdatabase --host $host --port $port --eval="$command"
|
mongosh --quiet $database --username $user --password $password --authenticationDatabase $authenticationdatabase --host $host --port $port --eval="$command"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Drop a database
|
# Drop a database
|
||||||
|
@ -110,18 +110,18 @@ EOF
|
||||||
# consider using ynh_mongo_remove_db instead.
|
# consider using ynh_mongo_remove_db instead.
|
||||||
#
|
#
|
||||||
# usage: ynh_mongo_drop_db --database=database
|
# usage: ynh_mongo_drop_db --database=database
|
||||||
# | arg: -d, --database= - The database name to drop
|
# | arg: -d, --database= - The database name to drop
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
ynh_mongo_drop_db() {
|
ynh_mongo_drop_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 "$@"
|
||||||
|
|
||||||
ynh_mongo_exec --database="$database" --command='db.runCommand({dropDatabase: 1})'
|
ynh_mongo_exec --database="$database" --command='db.runCommand({dropDatabase: 1})'
|
||||||
}
|
}
|
||||||
|
|
||||||
# Dump a database
|
# Dump a database
|
||||||
|
@ -129,19 +129,19 @@ ynh_mongo_drop_db() {
|
||||||
# example: ynh_mongo_dump_db --database=wekan > ./dump.bson
|
# example: ynh_mongo_dump_db --database=wekan > ./dump.bson
|
||||||
#
|
#
|
||||||
# usage: ynh_mongo_dump_db --database=database
|
# usage: ynh_mongo_dump_db --database=database
|
||||||
# | arg: -d, --database= - The database name to dump
|
# | arg: -d, --database= - The database name to dump
|
||||||
# | ret: the mongodump output
|
# | ret: the mongodump output
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
ynh_mongo_dump_db() {
|
ynh_mongo_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 "$@"
|
||||||
|
|
||||||
mongodump --quiet --db="$database" --archive
|
mongodump --quiet --db="$database" --archive
|
||||||
}
|
}
|
||||||
|
|
||||||
# Create a user
|
# Create a user
|
||||||
|
@ -149,49 +149,49 @@ ynh_mongo_dump_db() {
|
||||||
# [internal]
|
# [internal]
|
||||||
#
|
#
|
||||||
# usage: ynh_mongo_create_user --db_user=user --db_pwd=pwd --db_name=name
|
# usage: ynh_mongo_create_user --db_user=user --db_pwd=pwd --db_name=name
|
||||||
# | arg: -u, --db_user= - The user name to create
|
# | arg: -u, --db_user= - The user name to create
|
||||||
# | arg: -p, --db_pwd= - The password to identify user by
|
# | arg: -p, --db_pwd= - The password to identify user by
|
||||||
# | arg: -n, --db_name= - Name of the database to grant privilegies
|
# | arg: -n, --db_name= - Name of the database to grant privilegies
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
ynh_mongo_create_user() {
|
ynh_mongo_create_user() {
|
||||||
# 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
|
||||||
local db_pwd
|
local db_pwd
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
|
|
||||||
# Create the user and set the user as admin of the db
|
# Create the user and set the user as admin of the db
|
||||||
ynh_mongo_exec --database="$db_name" --command='db.createUser( { user: "'${db_user}'", pwd: "'${db_pwd}'", roles: [ { role: "readWrite", db: "'${db_name}'" } ] } );'
|
ynh_mongo_exec --database="$db_name" --command='db.createUser( { user: "'${db_user}'", pwd: "'${db_pwd}'", roles: [ { role: "readWrite", db: "'${db_name}'" } ] } );'
|
||||||
|
|
||||||
# Add clustermonitoring rights
|
# Add clustermonitoring rights
|
||||||
ynh_mongo_exec --database="$db_name" --command='db.grantRolesToUser("'${db_user}'",[{ role: "clusterMonitor", db: "admin" }]);'
|
ynh_mongo_exec --database="$db_name" --command='db.grantRolesToUser("'${db_user}'",[{ role: "clusterMonitor", db: "admin" }]);'
|
||||||
}
|
}
|
||||||
|
|
||||||
# Check if a mongo database exists
|
# Check if a mongo database exists
|
||||||
#
|
#
|
||||||
# usage: ynh_mongo_database_exists --database=database
|
# usage: ynh_mongo_database_exists --database=database
|
||||||
# | arg: -d, --database= - The database for which to check existence
|
# | arg: -d, --database= - The database for which to check existence
|
||||||
# | exit: Return 1 if the database doesn't exist, 0 otherwise
|
# | exit: Return 1 if the database doesn't exist, 0 otherwise
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
ynh_mongo_database_exists() {
|
ynh_mongo_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 [ $(ynh_mongo_exec --command='db.getMongo().getDBNames().indexOf("'${database}'")' --eval) -lt 0 ]
|
if [ $(ynh_mongo_exec --command='db.getMongo().getDBNames().indexOf("'${database}'")' --eval) -lt 0 ]
|
||||||
then
|
then
|
||||||
return 1
|
return 1
|
||||||
else
|
else
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Restore a database
|
# Restore a database
|
||||||
|
@ -199,18 +199,18 @@ ynh_mongo_database_exists() {
|
||||||
# example: ynh_mongo_restore_db --database=wekan < ./dump.bson
|
# example: ynh_mongo_restore_db --database=wekan < ./dump.bson
|
||||||
#
|
#
|
||||||
# usage: ynh_mongo_restore_db --database=database
|
# usage: ynh_mongo_restore_db --database=database
|
||||||
# | arg: -d, --database= - The database name to restore
|
# | arg: -d, --database= - The database name to restore
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
ynh_mongo_restore_db() {
|
ynh_mongo_restore_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 "$@"
|
||||||
|
|
||||||
mongorestore --quiet --db="$database" --archive
|
mongorestore --quiet --db="$database" --archive
|
||||||
}
|
}
|
||||||
|
|
||||||
# Drop a user
|
# Drop a user
|
||||||
|
@ -218,97 +218,97 @@ ynh_mongo_restore_db() {
|
||||||
# [internal]
|
# [internal]
|
||||||
#
|
#
|
||||||
# usage: ynh_mongo_drop_user --db_user=user --db_name=name
|
# usage: ynh_mongo_drop_user --db_user=user --db_name=name
|
||||||
# | arg: -u, --db_user= - The user to drop
|
# | arg: -u, --db_user= - The user to drop
|
||||||
# | arg: -n, --db_name= - Name of the database
|
# | arg: -n, --db_name= - Name of the database
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
ynh_mongo_drop_user() {
|
ynh_mongo_drop_user() {
|
||||||
# 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 "$@"
|
||||||
|
|
||||||
ynh_mongo_exec --database="$db_name" --command='db.dropUser("'$db_user'", {w: "majority", wtimeout: 5000})'
|
ynh_mongo_exec --database="$db_name" --command='db.dropUser("'$db_user'", {w: "majority", wtimeout: 5000})'
|
||||||
}
|
}
|
||||||
|
|
||||||
# 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
|
||||||
#
|
#
|
||||||
# usage: ynh_mongo_setup_db --db_user=user --db_name=name [--db_pwd=pwd]
|
# usage: ynh_mongo_setup_db --db_user=user --db_name=name [--db_pwd=pwd]
|
||||||
# | 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
|
||||||
# | arg: -p, --db_pwd= - Password of the database. If not provided, a password will be generated
|
# | arg: -p, --db_pwd= - Password of the database. If not provided, a password will be generated
|
||||||
#
|
#
|
||||||
# After executing this helper, the password of the created database will be available in $db_pwd
|
# After executing this helper, the password of the created database will be available in $db_pwd
|
||||||
# It will also be stored as "mongopwd" into the app settings.
|
# It will also be stored as "mongopwd" into the app settings.
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
ynh_mongo_setup_db() {
|
ynh_mongo_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}"
|
||||||
|
|
||||||
# Create the user and grant access to the database
|
# Create the user and grant access to the database
|
||||||
ynh_mongo_create_user --db_user="$db_user" --db_pwd="$db_pwd" --db_name="$db_name"
|
ynh_mongo_create_user --db_user="$db_user" --db_pwd="$db_pwd" --db_name="$db_name"
|
||||||
|
|
||||||
# Store the password in the app's config
|
# Store the password in the app's config
|
||||||
ynh_app_setting_set --app=$app --key=db_pwd --value=$db_pwd
|
ynh_app_setting_set --app=$app --key=db_pwd --value=$db_pwd
|
||||||
}
|
}
|
||||||
|
|
||||||
# Remove a database if it exists, and the associated user
|
# Remove a database if it exists, and the associated user
|
||||||
#
|
#
|
||||||
# usage: ynh_mongo_remove_db --db_user=user --db_name=name
|
# usage: ynh_mongo_remove_db --db_user=user --db_name=name
|
||||||
# | 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_mongo_remove_db() {
|
ynh_mongo_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_mongo_database_exists --database=$db_name; then # Check if the database exists
|
if ynh_mongo_database_exists --database=$db_name; then # Check if the database exists
|
||||||
ynh_mongo_drop_db --database=$db_name # Remove the database
|
ynh_mongo_drop_db --database=$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 mongo user if it exists
|
# Remove mongo user if it exists
|
||||||
ynh_mongo_drop_user --db_user=$db_user --db_name=$db_name
|
ynh_mongo_drop_user --db_user=$db_user --db_name=$db_name
|
||||||
}
|
}
|
||||||
|
|
||||||
# Install MongoDB and integrate MongoDB service in YunoHost
|
# Install MongoDB and integrate MongoDB service in YunoHost
|
||||||
#
|
#
|
||||||
# usage: ynh_install_mongo [--mongo_version=mongo_version]
|
# usage: ynh_install_mongo [--mongo_version=mongo_version]
|
||||||
# | arg: -m, --mongo_version= - Version of MongoDB to install
|
# | arg: -m, --mongo_version= - Version of MongoDB to install
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
ynh_install_mongo() {
|
ynh_install_mongo() {
|
||||||
# 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]=mongo_version=)
|
local -A args_array=([m]=mongo_version=)
|
||||||
local mongo_version
|
local mongo_version
|
||||||
# Manage arguments with getopts
|
# Manage arguments with getopts
|
||||||
ynh_handle_getopts_args "$@"
|
ynh_handle_getopts_args "$@"
|
||||||
mongo_version="${mongo_version:-$YNH_MONGO_VERSION}"
|
mongo_version="${mongo_version:-$YNH_MONGO_VERSION}"
|
||||||
|
|
||||||
ynh_print_info --message="Installing MongoDB Community Edition ..."
|
ynh_print_info --message="Installing MongoDB Community Edition ..."
|
||||||
local mongo_debian_release=$(ynh_get_debian_release)
|
local mongo_debian_release=$(ynh_get_debian_release)
|
||||||
|
|
||||||
if [[ "$(grep '^flags' /proc/cpuinfo | uniq)" != *"avx"* && "$mongo_version" != "4.4" ]]; then
|
if [[ "$(grep '^flags' /proc/cpuinfo | uniq)" != *"avx"* && "$mongo_version" != "4.4" ]]; then
|
||||||
ynh_print_warn --message="Installing Mongo 4.4 as $mongo_version is not compatible with your cpu (see https://docs.mongodb.com/manual/administration/production-notes/#x86_64)."
|
ynh_print_warn --message="Installing Mongo 4.4 as $mongo_version is not compatible with your cpu (see https://docs.mongodb.com/manual/administration/production-notes/#x86_64)."
|
||||||
|
@ -319,19 +319,19 @@ ynh_install_mongo() {
|
||||||
mongo_debian_release=buster
|
mongo_debian_release=buster
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ynh_install_extra_app_dependencies --repo="deb http://repo.mongodb.org/apt/debian $mongo_debian_release/mongodb-org/$mongo_version main" --package="mongodb-org mongodb-org-server mongodb-org-tools mongodb-mongosh" --key="https://www.mongodb.org/static/pgp/server-$mongo_version.asc"
|
ynh_install_extra_app_dependencies --repo="deb http://repo.mongodb.org/apt/debian $mongo_debian_release/mongodb-org/$mongo_version main" --package="mongodb-org mongodb-org-server mongodb-org-tools mongodb-mongosh" --key="https://www.mongodb.org/static/pgp/server-$mongo_version.asc"
|
||||||
mongodb_servicename=mongod
|
mongodb_servicename=mongod
|
||||||
|
|
||||||
# Make sure MongoDB is started and enabled
|
# Make sure MongoDB is started and enabled
|
||||||
systemctl enable $mongodb_servicename --quiet
|
systemctl enable $mongodb_servicename --quiet
|
||||||
systemctl daemon-reload --quiet
|
systemctl daemon-reload --quiet
|
||||||
ynh_systemd_action --service_name=$mongodb_servicename --action=restart --line_match="aiting for connections" --log_path="/var/log/mongodb/$mongodb_servicename.log"
|
ynh_systemd_action --service_name=$mongodb_servicename --action=restart --line_match="aiting for connections" --log_path="/var/log/mongodb/$mongodb_servicename.log"
|
||||||
|
|
||||||
# Integrate MongoDB service in YunoHost
|
# Integrate MongoDB service in YunoHost
|
||||||
yunohost service add $mongodb_servicename --description="MongoDB daemon" --log="/var/log/mongodb/$mongodb_servicename.log"
|
yunohost service add $mongodb_servicename --description="MongoDB daemon" --log="/var/log/mongodb/$mongodb_servicename.log"
|
||||||
|
|
||||||
# Store mongo_version into the config of this app
|
# Store mongo_version into the config of this app
|
||||||
ynh_app_setting_set --app=$app --key=mongo_version --value=$mongo_version
|
ynh_app_setting_set --app=$app --key=mongo_version --value=$mongo_version
|
||||||
}
|
}
|
||||||
|
|
||||||
# Remove MongoDB
|
# Remove MongoDB
|
||||||
|
@ -342,14 +342,14 @@ ynh_install_mongo() {
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
ynh_remove_mongo() {
|
ynh_remove_mongo() {
|
||||||
# Only remove the mongodb service if it is not installed.
|
# Only remove the mongodb service if it is not installed.
|
||||||
if ! ynh_package_is_installed --package="mongodb*"
|
if ! ynh_package_is_installed --package="mongodb*"
|
||||||
then
|
then
|
||||||
ynh_print_info --message="Removing MongoDB service..."
|
ynh_print_info --message="Removing MongoDB service..."
|
||||||
mongodb_servicename=mongod
|
mongodb_servicename=mongod
|
||||||
# Remove the mongodb service
|
# Remove the mongodb service
|
||||||
yunohost service remove $mongodb_servicename
|
yunohost service remove $mongodb_servicename
|
||||||
ynh_secure_remove --file="/var/lib/mongodb"
|
ynh_secure_remove --file="/var/lib/mongodb"
|
||||||
ynh_secure_remove --file="/var/log/mongodb"
|
ynh_secure_remove --file="/var/log/mongodb"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,27 +5,27 @@
|
||||||
# usage: ynh_redis_get_free_db
|
# usage: ynh_redis_get_free_db
|
||||||
# | returns: the database number to use
|
# | returns: the database number to use
|
||||||
ynh_redis_get_free_db() {
|
ynh_redis_get_free_db() {
|
||||||
local result max db
|
local result max db
|
||||||
result=$(redis-cli INFO keyspace)
|
result=$(redis-cli INFO keyspace)
|
||||||
|
|
||||||
# get the num
|
# get the num
|
||||||
max=$(cat /etc/redis/redis.conf | grep ^databases | grep -Eow "[0-9]+")
|
max=$(cat /etc/redis/redis.conf | grep ^databases | grep -Eow "[0-9]+")
|
||||||
|
|
||||||
db=0
|
db=0
|
||||||
# default Debian setting is 15 databases
|
# default Debian setting is 15 databases
|
||||||
for i in $(seq 0 "$max")
|
for i in $(seq 0 "$max")
|
||||||
do
|
do
|
||||||
if ! echo "$result" | grep -q "db$i"
|
if ! echo "$result" | grep -q "db$i"
|
||||||
then
|
then
|
||||||
db=$i
|
db=$i
|
||||||
break 1
|
break 1
|
||||||
fi
|
fi
|
||||||
db=-1
|
db=-1
|
||||||
done
|
done
|
||||||
|
|
||||||
test "$db" -eq -1 && ynh_die --message="No available Redis databases..."
|
test "$db" -eq -1 && ynh_die --message="No available Redis databases..."
|
||||||
|
|
||||||
echo "$db"
|
echo "$db"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Create a master password and set up global settings
|
# Create a master password and set up global settings
|
||||||
|
@ -34,6 +34,6 @@ ynh_redis_get_free_db() {
|
||||||
# usage: ynh_redis_remove_db database
|
# usage: ynh_redis_remove_db database
|
||||||
# | arg: database - the database to erase
|
# | arg: database - the database to erase
|
||||||
ynh_redis_remove_db() {
|
ynh_redis_remove_db() {
|
||||||
local db=$1
|
local db=$1
|
||||||
redis-cli -n "$db" flushdb
|
redis-cli -n "$db" flushdb
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,8 +8,8 @@ export RBENV_ROOT="$rbenv_install_dir"
|
||||||
export rbenv_root="$rbenv_install_dir"
|
export rbenv_root="$rbenv_install_dir"
|
||||||
|
|
||||||
if dpkg --compare-versions ${YNH_APP_PACKAGING_FORMAT:-0} lt 2; then
|
if dpkg --compare-versions ${YNH_APP_PACKAGING_FORMAT:-0} lt 2; then
|
||||||
build_ruby_dependencies="libjemalloc-dev curl build-essential libreadline-dev zlib1g-dev libsqlite3-dev libssl-dev libxml2-dev libxslt-dev autoconf automake bison libtool"
|
build_ruby_dependencies="libjemalloc-dev curl build-essential libreadline-dev zlib1g-dev libsqlite3-dev libssl-dev libxml2-dev libxslt-dev autoconf automake bison libtool"
|
||||||
build_pkg_dependencies="${build_pkg_dependencies:-} $build_ruby_dependencies"
|
build_pkg_dependencies="${build_pkg_dependencies:-} $build_ruby_dependencies"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Load the version of Ruby for an app, and set variables.
|
# Load the version of Ruby for an app, and set variables.
|
||||||
|
|
Loading…
Add table
Reference in a new issue