#!/bin/bash

dockerRestartApp() 
{
    local app_name="$1"

    if [[ -z "$app_name" ]]; then
        isNotice "No app name provided. Unable to restart containers."
    fi

    isNotice "Restarting Docker containers for '$app_name'. Please wait..."

    # Restart containers in one go
    local result=$(dockerCommandRun "docker ps -aqf name=$app_name | xargs -r docker restart" >/dev/null 2>&1)
    checkSuccess "Restarted Docker containers matching '$app_name'"

    # App-specific restart hook — host-installed apps define restart<App> to
    # restart their systemd services etc. (mirrors dockerUninstallApp's
    # uninstall<App> hook). No-op for pure-docker apps that don't define one.
    local app_name_ucfirst="$(tr '[:lower:]' '[:upper:]' <<< ${app_name:0:1})${app_name:1}"
    local restartFuncName="restart${app_name_ucfirst}"
    if declare -f "$restartFuncName" >/dev/null 2>&1; then
        "$restartFuncName"
    fi
}
