Bash common.sh: consolidate docker_cmd/retry_docker/verify_running/emby_api, fix tailscale dups

common.sh gains:
- docker_cmd() + verify_running() + retry_docker() — removed from all 3 Docker_Essentials
  scripts where they were byte-for-byte duplicates
- emby_api(endpoint, [timeout=30]) — removed from 6 Media/Tools scripts that each defined
  their own _emby_api() with the same curl/parse/error pattern; call sites renamed emby_api
- format_duration() extended with days/hours branch (was capped at minutes+seconds)
- notify() comment: scripts do not need to preflight the notify script via validate_unraid_cmd

Tailscale deduplication:
- arr_sync.sh: _resolve_node_ip() and inline block in _delete_remote_item() both replaced
  with resolve_tailscale_ip() from common.sh
- git_pull_execute.sh: inline tailscale ip -4 replaced with resolve_tailscale_ip() (adds
  the tailscale status fallback that was missing)
This commit is contained in:
Gmer4Lfe
2026-06-04 17:00:50 -04:00
parent 0bcb773332
commit b5d33cd6a5
12 changed files with 98 additions and 238 deletions
+2 -13
View File
@@ -315,12 +315,8 @@ _delete_remote_item() {
local node_id="$1" port="$2" api_ver="$3" endpoint="$4" config_xml="$5"
local id_field="$6" id_type="$7" stable_id="$8"
local node_name="${!node_id}"
local ts_name="${node_name,,}"
local node_ip
node_ip=$(tailscale ip -4 "$ts_name" 2>/dev/null)
[[ -z "$node_ip" ]] && node_ip=$(tailscale status 2>/dev/null | \
awk -v n="$ts_name" '$2 ~ "^" n { print $1; exit }')
[[ -z "$node_ip" ]] && return 1
node_ip=$(resolve_tailscale_ip "$node_name") || return 1
local select_expr
if [[ "$id_type" == "string" ]]; then
@@ -478,14 +474,7 @@ fi
_resolve_node_ip() {
local node_id="$1"
local node_name="${!node_id}"
local ts_name="${node_name,,}"
local ip
ip=$(tailscale ip -4 "$ts_name" 2>/dev/null)
[[ -z "$ip" ]] && ip=$(tailscale status 2>/dev/null | \
awk -v n="$ts_name" '$2 ~ "^" n { print $1; exit }')
[[ -z "$ip" ]] && return 1
echo "$ip"
resolve_tailscale_ip "${!node_id}"
}
# Check if arr is reachable on remote node