#!/bin/bash

appUpdateSpecifics()
{
    local app_name="$1"

    # Initialize setup.
    initializeAppVariables $app_name;

    if [[ $app_name == "adguard" ]] || [[ $app_name == "pihole" ]]; then
    	if [[ $CFG_REQUIREMENT_DNS_UPDATER == "true" ]]; then
            updateDNS $app_name install;
        fi
        # Split-horizon local DNS: app subdomains resolve to the box on the LAN.
        declare -F setupLocalDnsRewrites >/dev/null 2>&1 && setupLocalDnsRewrites
    fi

    if [[ $app_name == "libreportal" ]]; then
        webuiLibrePortalUpdate;
    fi

    if [[ $app_name == "dashy" ]]; then
        # Refresh apps-services.json (the source of truth that
        # appDashyUpdateConf reads) before generating dashy's conf.yml.
        # On a first dashy install the file may not yet reflect dashy
        # itself; on a re-install the previous selection survives.
        webuiLibrePortalUpdate;
        appDashyUpdateConf;
    fi

    if [[ $app_name == "focalboard" ]]; then
        # Focalboard runs as nobody (65534) and writes its sqlite db + uploads
        # under its mounted data dir; fixPermissionsBeforeStart hands the dir to
        # the install user, so give it to 65534 here or the server can't open
        # the database. Restart so it picks the dir up.
        sudo chown -R 65534:65534 "$containers_dir$app_name/data";
        shouldrestart="true";
    fi

    if [[ $shouldrestart == "true" ]]; then
        dockerComposeRestart $app_name;
    fi

    isSuccessful "All application specific updates have been completed."
}
