1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/sogo_ynh.git synced 2024-09-03 20:26:07 +02:00

Simplify and cleanup scripts

This commit is contained in:
Josué Tille 2024-02-23 00:21:58 +01:00
parent b9584056d5
commit 89c99ff2d2
No known key found for this signature in database
GPG key ID: 5F259226AD51F2F5
8 changed files with 27 additions and 84 deletions

View file

@ -50,8 +50,6 @@ ram.runtime = "200M"
[resources] [resources]
[resources.system_user] [resources.system_user]
[resources.install_dir]
[resources.permissions] [resources.permissions]
main.url = "/" main.url = "/"

View file

@ -9,7 +9,7 @@
#================================================= #=================================================
config_nginx() { config_nginx() {
nginx_config="$YNH_APP_BASEDIR/conf/nginx.conf" nginx_config="/etc/nginx/conf.d/$domain/$app.conf"
# shellcheck disable=SC2016 # shellcheck disable=SC2016
principals_block=' principals_block='
@ -37,6 +37,8 @@ location /.well-known/carddav {
rewrite ^ https://$server_name/SOGo/dav/; rewrite ^ https://$server_name/SOGo/dav/;
}' }'
ynh_add_nginx_config
if ! is_url_handled -d "$domain" -p "/principals"; then if ! is_url_handled -d "$domain" -p "/principals"; then
echo "$principals_block" >> "$nginx_config" echo "$principals_block" >> "$nginx_config"
fi fi
@ -49,7 +51,19 @@ location /.well-known/carddav {
if ! is_url_handled -d "$domain" -p "/.wellk-nown/carddav"; then if ! is_url_handled -d "$domain" -p "/.wellk-nown/carddav"; then
echo "$carddav_block" >> "$nginx_config" echo "$carddav_block" >> "$nginx_config"
fi fi
ynh_add_nginx_config ynh_store_file_checksum --file="$nginx_config"
systemctl reload nginx.service
}
set_permissions() {
chown -R "$app:$app" "/etc/$app"
chmod -R u=rwX,g=rX,o= "/etc/$app"
chown -R "$app:$app" "/var/log/$app"
chmod -R u=rwX,g=rX,o= "/var/log/$app"
chown root: "/etc/cron.d/$app"
chmod 644 "/etc/cron.d/$app"
} }
#================================================= #=================================================

View file

@ -22,9 +22,6 @@ ynh_print_info --message="Declaring files to be backed up..."
# Backup the nginx configuration # Backup the nginx configuration
ynh_backup --src_path="/etc/nginx/conf.d/$domain.d/$app.conf" ynh_backup --src_path="/etc/nginx/conf.d/$domain.d/$app.conf"
# Backup the logrotate configuration
ynh_backup --src_path="/etc/logrotate.d/$app"
#================================================= #=================================================
# BACKUP VARIOUS FILES # BACKUP VARIOUS FILES
#================================================= #=================================================
@ -32,9 +29,6 @@ ynh_backup --src_path="/etc/logrotate.d/$app"
# Backup SOGo configuration # Backup SOGo configuration
ynh_backup --src_path="/etc/$app" ynh_backup --src_path="/etc/$app"
# Backup Stunnel configuration
ynh_backup --src_path="/etc/stunnel/$app.conf"
# Backup cron # Backup cron
ynh_backup --src_path="/etc/cron.d/$app" ynh_backup --src_path="/etc/cron.d/$app"

View file

@ -20,6 +20,7 @@ fi
ynh_script_progression --message="Updating NGINX configuration..." ynh_script_progression --message="Updating NGINX configuration..."
ynh_change_url_nginx_config ynh_change_url_nginx_config
config_nginx
#================================================= #=================================================
# END OF SCRIPT # END OF SCRIPT

View file

@ -20,37 +20,14 @@ ynh_script_progression --message="Configuring application..." --weight=3
mkdir -p "/etc/$app" mkdir -p "/etc/$app"
ynh_add_config --template="sogo.conf" --destination="/etc/$app/sogo.conf" ynh_add_config --template="sogo.conf" --destination="/etc/$app/sogo.conf"
chown -R "$app:$app" "/etc/$app"
chmod -R 750 "/etc/$app"
# Configure stunnel
# To fix the issue https://sogo.nu/bugs/view.php?id=31 we need stunnel to be able to connect correctly to the smtp server
ynh_add_config --template="stunnel.conf" --destination="/etc/stunnel/$app.conf"
# Enable stunnel at startup
ynh_replace_string --match_string="ENABLED=0" --replace_string="ENABLED=1" --target_file="/etc/default/stunnel4"
#=================================================
# SETUP A CRON
#=================================================
ynh_script_progression --message="Setting up a cron..." --weight=1
ynh_add_config --template="cron" --destination="/etc/cron.d/$app" ynh_add_config --template="cron" --destination="/etc/cron.d/$app"
chown root: "/etc/cron.d/$app"
chmod 644 "/etc/cron.d/$app"
#=================================================
# SYSTEM CONFIGURATION
#=================================================
ynh_script_progression --message="Adding system configurations related to $app..." --weight=1
config_nginx config_nginx
ynh_use_logrotate --logfile="/var/log/$app/sogo.log" --nonappend
yunohost service add "sogo" --description="Groupware for E-Mail, Contacts and Calender" --log="/var/log/$app/$app.log" yunohost service add "sogo" --description="Groupware for E-Mail, Contacts and Calender" --log="/var/log/$app/$app.log"
ynh_use_logrotate --logfile="/var/log/$app/sogo.log" --nonappend set_permissions
chown -R "$app:$app" "/var/log/$app"
chmod -R 750 "/var/log/$app"
#================================================= #=================================================
# START SYSTEMD SERVICE # START SYSTEMD SERVICE

View file

@ -14,11 +14,7 @@ source /usr/share/yunohost/helpers
#================================================= #=================================================
ynh_script_progression --message="Removing system configurations related to $app..." --weight=1 ynh_script_progression --message="Removing system configurations related to $app..." --weight=1
# Remove the service from the list of services known by YunoHost (added from `yunohost service add`) yunohost service remove "sogo"
if ynh_exec_warn_less yunohost service status "sogo" >/dev/null; then
ynh_script_progression --message="Removing sogo service integration..." --weight=1
yunohost service remove "sogo"
fi
# Remove the dedicated systemd config # Remove the dedicated systemd config
ynh_remove_systemd_config ynh_remove_systemd_config

View file

@ -17,37 +17,19 @@ ynh_script_progression --message="Restoring the MySQL database..." --weight=1
ynh_mysql_connect_as --user="$db_user" --password="$db_pwd" --database="$db_name" < ./db.sql ynh_mysql_connect_as --user="$db_user" --password="$db_pwd" --database="$db_name" < ./db.sql
# Enable stunnel at startup
ynh_replace_string --match_string "ENABLED=0" --replace_string "ENABLED=1" --target_file /etc/default/stunnel4
#================================================= #=================================================
# RESTORE VARIOUS FILES # RESTORE VARIOUS FILES
#================================================= #=================================================
ynh_script_progression --message="Restoring various files..." --weight=1 ynh_script_progression --message="Restoring various files..." --weight=1
ynh_restore
ynh_restore_file --origin_path="/etc/$app"
chown -R "$app:$app" "/etc/$app"
chmod -R 750 "/etc/$app"
ynh_restore_file --origin_path="/etc/stunnel/$app.conf"
ynh_restore_file --origin_path="/etc/cron.d/$app"
ynh_restore_file --origin_path="/var/log/$app"
chown -R "$app:$app" "/var/log/$app"
chmod -R 750 "/var/log/$app"
#================================================= #=================================================
# RESTORE SYSTEM CONFIGURATIONS # RESTORE SYSTEM CONFIGURATIONS
#================================================= #=================================================
ynh_script_progression --message="Restoring system configurations related to $app..." --weight=1 ynh_script_progression --message="Restoring system configurations related to $app..." --weight=1
ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf"
systemctl enable "$app.service" --quiet
yunohost service add "sogo" --description="Groupware for E-Mail, Contacts and Calender" --log="/var/log/$app/$app.log" yunohost service add "sogo" --description="Groupware for E-Mail, Contacts and Calender" --log="/var/log/$app/$app.log"
set_permissions
ynh_use_logrotate --logfile="/var/log/$app/sogo.log" --nonappend
#================================================= #=================================================
# START SYSTEMD SERVICE # START SYSTEMD SERVICE
@ -55,15 +37,17 @@ ynh_use_logrotate --logfile="/var/log/$app/sogo.log" --nonappend
ynh_script_progression --message="Starting a systemd service..." --weight=3 ynh_script_progression --message="Starting a systemd service..." --weight=3
ynh_systemd_action --service_name="$app" --action="restart" --log_path="systemd" ynh_systemd_action --service_name="$app" --action="restart" --log_path="systemd"
ynh_systemd_action --service_name="stunnel4" --action="restart" --log_path="systemd"
#================================================= #=================================================
# RELOAD NGINX AND PHP-FPM # RELOAD NGINX
#================================================= #=================================================
ynh_script_progression --message="Reloading NGINX web server..." --weight=1 ynh_script_progression --message="Reloading NGINX web server..." --weight=1
ynh_systemd_action --service_name="nginx" --action=reload ynh_systemd_action --service_name="nginx" --action=reload
# Use logrotate to manage app-specific logfile(s)
ynh_use_logrotate --logfile="/var/log/$app/sogo.log" --nonappend
#================================================= #=================================================
# END OF SCRIPT # END OF SCRIPT
#================================================= #=================================================

View file

@ -31,27 +31,6 @@ ynh_script_progression --message="Configuring application..." --weight=1
# Configure SOGO # Configure SOGO
ynh_add_config --template="sogo.conf" --destination="/etc/$app/sogo.conf" ynh_add_config --template="sogo.conf" --destination="/etc/$app/sogo.conf"
chown -R "$app:$app" "/etc/$app"
chmod -R 750 "/etc/$app"
# Configure stunnel
ynh_add_config --template="stunnel.conf" --destination="/etc/stunnel/$app.conf"
# Enable stunnel at startup
ynh_replace_string --match_string="ENABLED=0" --replace_string="ENABLED=1" --target_file="/etc/default/stunnel4"
# Protect logs dir
chown -R "$app:$app" "/var/log/$app"
chmod -R 750 "/var/log/$app"
#=================================================
# SETUP A CRON
#=================================================
ynh_script_progression --message="Setting up a cron..." --weight=1
ynh_add_config --template="cron" --destination="/etc/cron.d/$app"
chown root: "/etc/cron.d/$app"
chmod 644 "/etc/cron.d/$app"
#================================================= #=================================================
# REAPPLY SYSTEM CONFIGURATIONS # REAPPLY SYSTEM CONFIGURATIONS