#!/bin/bash

dockerStopApp() 
{
    local app_name="$1"

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

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

    # Stop containers in one go
    local result=$(dockerCommandRun "docker ps -aq --filter name=${app_name} | xargs -r docker stop" >/dev/null 2>&1)
    checkSuccess "Stopped Docker containers matching '$app_name'"

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