Support for Bookworm & avoid reinstall

This commit is contained in:
Gérard Collin 2024-06-21 18:44:58 +02:00
parent 2f933b5bf2
commit cb57a3ecd5

View file

@ -293,6 +293,7 @@ ynh_mongo_remove_db() {
}
# Install MongoDB and integrate MongoDB service in YunoHost
# It can upgrade / downgrade the desired mongo version to ensure a compatible one is installed
#
# usage: ynh_install_mongo [--mongo_version=mongo_version]
# | arg: -m, --mongo_version= - Version of MongoDB to install
@ -311,15 +312,39 @@ ynh_install_mongo() {
local mongo_debian_release=$(ynh_get_debian_release)
if [[ $(cat /proc/cpuinfo) != *"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)."
mongo_version="4.4"
fi
if [[ "$mongo_version" == "4.4" ]]; then
ynh_print_warn --message="Switched to buster install as Mongo 4.4 is not compatible with $mongo_debian_release."
mongo_debian_release=buster
fi
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)."
mongo_version="4.4"
fi
if [[ "$mongo_version" == "4.4" ]]; then
ynh_print_warn --message="Switched to buster install as Mongo 4.4 is not compatible with $mongo_debian_release."
mongo_debian_release=buster
fi
if [[ "$mongo_debian_release" == "bookworm" && "$mongo_version" != "7."* ]]; then
ynh_print_warn --message="Switched to Mongo v7 as $mongo_version is not compatible with $mongo_debian_release"
mongo_version = "7.0"
fi
# Check if MongoDB is already installed
local install_package=true
local current_version=$(ynh_package_version --package="mongodb-org-server")
current_version=$(cut -c 1-3 <<< "$current_version")
if [[ "a$current_version" != "a" ]]; then
if (( $(bc <<< "$current_version < $mongo_version") )); then
ynh_print_info --message="Upgrading Mongo from version $current_version to $mongo_version"
else
if (( $(bc <<< "$current_version >= $mongo_version") )); then
ynh_print_info --message="Mongo version $current_version is already installed and will be kept instead of requested version $mongo_version"
install_package=false
fi
fi
fi
if [[ "$install_package" = true ]]; then
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"
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"
mongodb_servicename=mongod
# Make sure MongoDB is started and enabled