mirror of
https://github.com/YunoHost-Apps/minetest_ynh.git
synced 2024-09-03 20:36:00 +02:00
101 lines
3.5 KiB
Bash
Executable file
101 lines
3.5 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
#=================================================
|
|
# GENERIC STARTING
|
|
#=================================================
|
|
# IMPORT GENERIC HELPERS
|
|
#=================================================
|
|
|
|
source _common.sh
|
|
source /usr/share/yunohost/helpers
|
|
|
|
#=================================================
|
|
# MANAGE FAILURE OF THE SCRIPT
|
|
#=================================================
|
|
|
|
ynh_abort_if_errors # Active trap pour arrêter le script si une erreur est détectée.
|
|
|
|
#=================================================
|
|
# RETRIEVE ARGUMENTS FROM THE MANIFEST
|
|
#=================================================
|
|
|
|
domain=$YNH_APP_ARG_DOMAIN
|
|
is_public=$YNH_APP_ARG_IS_PUBLIC
|
|
pvp=$YNH_APP_ARG_PVP
|
|
creative=$YNH_APP_ARG_CREATIVE
|
|
damage=$YNH_APP_ARG_DAMAGE
|
|
app=$YNH_APP_INSTANCE_NAME
|
|
|
|
#=================================================
|
|
# CHECK THE DEBIAN'S CODENAME
|
|
#=================================================
|
|
|
|
codename=$(lsb_release -a 2>/dev/null | grep Codename | cut -f 2)
|
|
test -z "$codename" && (ynh_die "codename empty")
|
|
|
|
#=================================================
|
|
# STANDARD MODIFICATIONS
|
|
#=================================================
|
|
# FIND AND OPEN A PORT
|
|
#=================================================
|
|
|
|
port=$(ynh_find_port 30000) # Cherche un port libre.
|
|
|
|
# Ouvre les ports dans le firewall
|
|
ALL_QUIET sudo yunohost firewall allow --no-upnp UDP $port
|
|
ynh_app_setting_set $app port $port
|
|
|
|
# Enregistre les infos dans la config YunoHost
|
|
ynh_app_setting_set $app domain ${domain}
|
|
ynh_app_setting_set $app is_public ${is_public}
|
|
ynh_app_setting_set $app pvp ${pvp}
|
|
ynh_app_setting_set $app creative ${creative}
|
|
ynh_app_setting_set $app damage ${damage}
|
|
|
|
#=================================================
|
|
# SPECIFIC SETUP
|
|
#=================================================
|
|
# INSTALL MINETEST
|
|
#=================================================
|
|
|
|
# Installation du paquet minetest et ses dépendances
|
|
ynh_replace_string "__CODENAME__" "$codename" ../conf/minetest.list
|
|
sudo cp -a ../conf/minetest.list /etc/apt/sources.list.d/
|
|
sudo apt-get update
|
|
sudo apt-get -qq -t $codename-backports -y install minetest-server
|
|
|
|
#=================================================
|
|
# ENABLE SERVICE IN ADMIN PANEL
|
|
#=================================================
|
|
|
|
# Ajoute le service au monitoring de Yunohost.
|
|
sudo yunohost service add minetest --log "/var/log/minetest/minetest.log"
|
|
|
|
#=================================================
|
|
# CONFIGURE MINETEST
|
|
#=================================================
|
|
|
|
# Modifie la configuration de minetest
|
|
ynh_replace_string "__PORT__" "$port" ../conf/minetest.conf
|
|
if [ $is_public -eq 1 ]
|
|
then
|
|
ynh_replace_string "__ANNOUNCE__" "true" ../conf/minetest.conf
|
|
else
|
|
ynh_replace_string "__ANNOUNCE__" "false" ../conf/minetest.conf
|
|
fi
|
|
ynh_replace_string "__DOMAIN__" "$domain" ../conf/minetest.conf
|
|
ynh_replace_string "__PVP__" "$pvp" ../conf/minetest.conf
|
|
ynh_replace_string "__CREATIVE__" "$creative" ../conf/minetest.conf
|
|
ynh_replace_string "__DAMAGE__" "$damage" ../conf/minetest.conf
|
|
sudo cp ../conf/minetest.conf /etc/minetest/minetest.conf
|
|
sudo chown root:root /etc/minetest/minetest.conf
|
|
sudo chmod 644 /etc/minetest/minetest.conf
|
|
|
|
ynh_store_checksum_config "/etc/minetest/minetest.conf" # Enregistre la somme de contrôle du fichier de config
|
|
|
|
#=================================================
|
|
# RESTART MINETEST'S SERVICE
|
|
#=================================================
|
|
|
|
# Redémarre minetest pour prendre en compte la nouvelle configuration
|
|
sudo systemctl restart minetest-server
|