#!/bin/bash # to test the functionnality : # yunohost backup create -n "homeassistant-test" --apps homeassistant # yunohost app remove homeassistant # yunohost backup restore "homeassistant-test" source ../settings/scripts/_common.sh source /usr/share/yunohost/helpers # manage script failure ynh_abort_if_errors # retrieve arguments app=$YNH_APP_INSTANCE_NAME domain=$(ynh_app_setting_get "$app" domain) port=$(ynh_app_setting_get "$app" port) # definie useful vars final_path="/opt/yunohost/$app" home_path="/home/$app" data_path="/home/$app/.$app" # check domain/path availability path_url=$(ynh_normalize_url_path "/") ynh_webpath_available $domain $path_url || ynh_die "$domain/$path_url is not available, please use an other domain." # add required packages ynh_install_app_dependencies "$PKG_DEPENDENCIES" # restore dedicated system user ynh_system_user_exists "$app" && ynh_die "User $app is not available" ynh_system_user_create "$app" # restore conf files ynh_restore_file "/etc/nginx/conf.d/$domain.d/$app.conf" ynh_restore_file "/etc/systemd/system/$app@$app.service" # restore source if [ ! -d "$final_path" ]; then ynh_restore_file "$final_path" else ynh_die "There is already a directory: $final_path" fi # restore data if [ ! -d "$home_path" ]; then ynh_restore_file "$home_path" chown -R $app: "$home_path" else ynh_die "$home_path already exists and will not be overwritten" fi # restore port [ $port -eq $(ynh_find_port $port) ] || ynh_die "$port is not available, please use an other port" ynh_exec_fully_quiet yunohost firewall allow TCP $port # add service in admin panel yunohost service add "$app@$app" --log "$data_path/home-assistant.log" # enable & restart systemd service ynh_system_reload --service_name="$app@$app" --action=enable ynh_check_starting --line_to_match="Home Assistant initialized in " --app_log="systemd" --timeout=1000 --service_name="$app@$app" # reload nginx ynh_system_reload --service_name=nginx