diff --git a/addons_updater/build.json b/addons_updater/build.json index 86441b172..f7538b971 100644 --- a/addons_updater/build.json +++ b/addons_updater/build.json @@ -1,6 +1,6 @@ { - "build_from": { - "aarch64": "ghcr.io/hassio-addons/base-python/aarch64:stable", - "amd64": "ghcr.io/hassio-addons/base-python/amd64:stable" - } + "build_from": { + "aarch64": "ghcr.io/hassio-addons/base-python/aarch64:stable", + "amd64": "ghcr.io/hassio-addons/base-python/amd64:stable" + } } diff --git a/autobrr/build.json b/autobrr/build.json index 02212c6de..6b56eac36 100644 --- a/autobrr/build.json +++ b/autobrr/build.json @@ -1,6 +1,6 @@ { - "build_from": { - "aarch64": "ghcr.io/autobrr/autobrr:latest", - "amd64": "ghcr.io/autobrr/autobrr:latest" - } + "build_from": { + "aarch64": "ghcr.io/autobrr/autobrr:latest", + "amd64": "ghcr.io/autobrr/autobrr:latest" + } } diff --git a/baikal/build.json b/baikal/build.json index fd93fd6cf..ddfbf8c61 100644 --- a/baikal/build.json +++ b/baikal/build.json @@ -1,6 +1,6 @@ { - "build_from": { - "aarch64": "ghcr.io/mralucarddante/baikal-docker-hass:latest", - "amd64": "ghcr.io/mralucarddante/baikal-docker-hass:latest" - } + "build_from": { + "aarch64": "ghcr.io/mralucarddante/baikal-docker-hass:latest", + "amd64": "ghcr.io/mralucarddante/baikal-docker-hass:latest" + } } diff --git a/bazarr/build.json b/bazarr/build.json index e629efcfd..0cba2d81b 100644 --- a/bazarr/build.json +++ b/bazarr/build.json @@ -1,6 +1,6 @@ { - "build_from": { - "aarch64": "lscr.io/linuxserver/bazarr:arm64v8-latest", - "amd64": "lscr.io/linuxserver/bazarr:amd64-latest" - } + "build_from": { + "aarch64": "lscr.io/linuxserver/bazarr:arm64v8-latest", + "amd64": "lscr.io/linuxserver/bazarr:amd64-latest" + } } diff --git a/birdnet-pi/rootfs/helpers/birdnet_to_mqtt.py b/birdnet-pi/rootfs/helpers/birdnet_to_mqtt.py index b075e0e23..2e5beaeec 100644 --- a/birdnet-pi/rootfs/helpers/birdnet_to_mqtt.py +++ b/birdnet-pi/rootfs/helpers/birdnet_to_mqtt.py @@ -112,6 +112,7 @@ def automatic_mqtt_publish(file, detection, path): mqttc.publish(mqtt_topic, json_bird, 1) log.info("Posted to MQTT: ok") + # Create MQTT client using legacy callback API when available for # compatibility with paho-mqtt >= 2.0 callback_api = getattr(mqtt, "CallbackAPIVersion", None) diff --git a/emby/rootfs/etc/services.d/nginx/run b/emby/rootfs/etc/services.d/nginx/run old mode 100644 new mode 100755 diff --git a/enedisgateway2mqtt/build.json b/enedisgateway2mqtt/build.json index 7e4476215..8db6acb01 100644 --- a/enedisgateway2mqtt/build.json +++ b/enedisgateway2mqtt/build.json @@ -1,6 +1,6 @@ { - "build_from": { - "aarch64": "m4dm4rtig4n/myelectricaldata:latest", - "amd64": "m4dm4rtig4n/myelectricaldata:latest" - } + "build_from": { + "aarch64": "m4dm4rtig4n/myelectricaldata:latest", + "amd64": "m4dm4rtig4n/myelectricaldata:latest" + } } diff --git a/enedisgateway2mqtt_dev/build.json b/enedisgateway2mqtt_dev/build.json index 10fa82862..a8da2a638 100644 --- a/enedisgateway2mqtt_dev/build.json +++ b/enedisgateway2mqtt_dev/build.json @@ -1,6 +1,6 @@ { - "build_from": { - "aarch64": "m4dm4rtig4n/myelectricaldata:latest-dev", - "amd64": "m4dm4rtig4n/myelectricaldata:latest-dev" - } + "build_from": { + "aarch64": "m4dm4rtig4n/myelectricaldata:latest-dev", + "amd64": "m4dm4rtig4n/myelectricaldata:latest-dev" + } } diff --git a/filebrowser/build.json b/filebrowser/build.json index 92656f610..6cba9b3f3 100644 --- a/filebrowser/build.json +++ b/filebrowser/build.json @@ -1,6 +1,6 @@ { - "build_from": { - "aarch64": "filebrowser/filebrowser:s6", - "amd64": "filebrowser/filebrowser:s6" - } + "build_from": { + "aarch64": "filebrowser/filebrowser:s6", + "amd64": "filebrowser/filebrowser:s6" + } } diff --git a/immich_noml/config.yaml b/immich_noml/config.yaml index 4b4164e34..efadca5fe 100644 --- a/immich_noml/config.yaml +++ b/immich_noml/config.yaml @@ -3,8 +3,7 @@ arch: - amd64 backup_exclude: - "**/machine-learning/*" -description: - Self-hosted photo and video backup solution directly from your mobile phone +description: Self-hosted photo and video backup solution directly from your mobile phone devices: - /dev/dri - /dev/dxg diff --git a/inadyn/build.json b/inadyn/build.json index 53bda975d..fea8d204e 100644 --- a/inadyn/build.json +++ b/inadyn/build.json @@ -1,6 +1,6 @@ { - "build_from": { - "aarch64": "troglobit/inadyn:latest", - "amd64": "troglobit/inadyn:latest" - } + "build_from": { + "aarch64": "troglobit/inadyn:latest", + "amd64": "troglobit/inadyn:latest" + } } diff --git a/jackett/build.json b/jackett/build.json index 6c876e282..30d0dccdd 100644 --- a/jackett/build.json +++ b/jackett/build.json @@ -1,6 +1,6 @@ { - "build_from": { - "aarch64": "lscr.io/linuxserver/jackett:arm64v8-latest", - "amd64": "lscr.io/linuxserver/jackett:amd64-latest" - } + "build_from": { + "aarch64": "lscr.io/linuxserver/jackett:arm64v8-latest", + "amd64": "lscr.io/linuxserver/jackett:amd64-latest" + } } diff --git a/jellyfin/build.json b/jellyfin/build.json index 49e0e7e17..9fe517d55 100644 --- a/jellyfin/build.json +++ b/jellyfin/build.json @@ -1,6 +1,6 @@ { - "build_from": { - "aarch64": "lscr.io/linuxserver/jellyfin:arm64v8-latest", - "amd64": "lscr.io/linuxserver/jellyfin:amd64-latest" - } + "build_from": { + "aarch64": "lscr.io/linuxserver/jellyfin:arm64v8-latest", + "amd64": "lscr.io/linuxserver/jellyfin:amd64-latest" + } } diff --git a/jellyfin/rootfs/etc/services.d/nginx/run b/jellyfin/rootfs/etc/services.d/nginx/run old mode 100644 new mode 100755 diff --git a/lidarr/build.json b/lidarr/build.json index c855d383d..1bf521c60 100644 --- a/lidarr/build.json +++ b/lidarr/build.json @@ -1,6 +1,6 @@ { - "build_from": { - "aarch64": "lscr.io/linuxserver/lidarr:arm64v8-latest", - "amd64": "lscr.io/linuxserver/lidarr:amd64-latest" - } + "build_from": { + "aarch64": "lscr.io/linuxserver/lidarr:arm64v8-latest", + "amd64": "lscr.io/linuxserver/lidarr:amd64-latest" + } } diff --git a/monica/rootfs/etc/cont-init.d/99-run.sh b/monica/rootfs/etc/cont-init.d/99-run.sh index 7f8129c53..740df6d01 100755 --- a/monica/rootfs/etc/cont-init.d/99-run.sh +++ b/monica/rootfs/etc/cont-init.d/99-run.sh @@ -166,7 +166,7 @@ if [[ "${MEILISEARCH_LOCAL}" == true ]]; then bashio::log.error "${message}" if [ -n "${S6_SVSCANCTL_BIN}" ]; then - if ! "${S6_SVSCANCTL_BIN}" -t "${S6_SUPERVISED_DIR}" 2>/dev/null; then + if ! "${S6_SVSCANCTL_BIN}" -t "${S6_SUPERVISED_DIR}" 2> /dev/null; then bashio::log.error "Unable to signal s6-svscanctl to stop services" fi else @@ -181,7 +181,7 @@ if [[ "${MEILISEARCH_LOCAL}" == true ]]; then } meilisearch_ensure_running() { - if kill -0 "${MEILISEARCH_PID}" 2>/dev/null; then + if kill -0 "${MEILISEARCH_PID}" 2> /dev/null; then return 0 fi @@ -201,12 +201,12 @@ if [[ "${MEILISEARCH_LOCAL}" == true ]]; then } MEILISEARCH_CMD=( - env \ - MEILI_ENV="${MEILISEARCH_ENVIRONMENT}" \ - MEILI_NO_ANALYTICS="${MEILISEARCH_NO_ANALYTICS}" \ - meilisearch \ - --http-addr "${MEILISEARCH_ADDR}" \ - --db-path "${MEILISEARCH_DB_PATH}" + env + MEILI_ENV="${MEILISEARCH_ENVIRONMENT}" + MEILI_NO_ANALYTICS="${MEILISEARCH_NO_ANALYTICS}" + meilisearch + --http-addr "${MEILISEARCH_ADDR}" + --db-path "${MEILISEARCH_DB_PATH}" ) if [ -n "${MEILISEARCH_ENV_KEY}" ]; then @@ -218,7 +218,7 @@ if [[ "${MEILISEARCH_LOCAL}" == true ]]; then bashio::log.info "Waiting for Meilisearch TCP socket" for attempt in $(seq 1 30); do - if bash -c "cat < /dev/null > /dev/tcp/${MEILISEARCH_HOST}/${MEILISEARCH_PORT}" 2>/dev/null; then + if bash -c "cat < /dev/null > /dev/tcp/${MEILISEARCH_HOST}/${MEILISEARCH_PORT}" 2> /dev/null; then break fi diff --git a/mylar3/build.json b/mylar3/build.json index 3877389dc..5d2e55c55 100644 --- a/mylar3/build.json +++ b/mylar3/build.json @@ -1,6 +1,6 @@ { - "build_from": { - "aarch64": "lscr.io/linuxserver/mylar3:arm64v8-latest", - "amd64": "lscr.io/linuxserver/mylar3:amd64-latest" - } + "build_from": { + "aarch64": "lscr.io/linuxserver/mylar3:arm64v8-latest", + "amd64": "lscr.io/linuxserver/mylar3:amd64-latest" + } } diff --git a/netalertx/build.json b/netalertx/build.json index ca6bd2e86..38cfbab66 100644 --- a/netalertx/build.json +++ b/netalertx/build.json @@ -1,6 +1,6 @@ { - "build_from": { - "aarch64": "ghcr.io/jokob-sk/netalertx:latest", - "amd64": "ghcr.io/jokob-sk/netalertx:latest" - } + "build_from": { + "aarch64": "ghcr.io/jokob-sk/netalertx:latest", + "amd64": "ghcr.io/jokob-sk/netalertx:latest" + } } diff --git a/nzbget/build.json b/nzbget/build.json index fd3273dc8..7c70fc318 100644 --- a/nzbget/build.json +++ b/nzbget/build.json @@ -1,6 +1,6 @@ { - "build_from": { - "aarch64": "lscr.io/linuxserver/nzbget:arm64v8-latest", - "amd64": "lscr.io/linuxserver/nzbget:amd64-latest" - } + "build_from": { + "aarch64": "lscr.io/linuxserver/nzbget:arm64v8-latest", + "amd64": "lscr.io/linuxserver/nzbget:amd64-latest" + } } diff --git a/nzbget/rootfs/etc/services.d/nginx/run b/nzbget/rootfs/etc/services.d/nginx/run old mode 100644 new mode 100755 diff --git a/ombi/build.json b/ombi/build.json index c95bc04fd..a7ee1e044 100644 --- a/ombi/build.json +++ b/ombi/build.json @@ -1,6 +1,6 @@ { - "build_from": { - "aarch64": "lscr.io/linuxserver/ombi:arm64v8-latest", - "amd64": "lscr.io/linuxserver/ombi:amd64-latest" - } + "build_from": { + "aarch64": "lscr.io/linuxserver/ombi:arm64v8-latest", + "amd64": "lscr.io/linuxserver/ombi:amd64-latest" + } } diff --git a/organizr/build.json b/organizr/build.json index 319dd8069..bf1714102 100644 --- a/organizr/build.json +++ b/organizr/build.json @@ -1,6 +1,6 @@ { - "build_from": { - "aarch64": "organizr/organizr:linux-arm64", - "amd64": "organizr/organizr:linux-amd64" - } + "build_from": { + "aarch64": "organizr/organizr:linux-arm64", + "amd64": "organizr/organizr:linux-amd64" + } } diff --git a/piwigo/build.json b/piwigo/build.json index b8a3f7b20..9238046fa 100644 --- a/piwigo/build.json +++ b/piwigo/build.json @@ -1,6 +1,6 @@ { - "build_from": { - "aarch64": "lscr.io/linuxserver/piwigo:arm64v8-latest", - "amd64": "lscr.io/linuxserver/piwigo:amd64-latest" - } + "build_from": { + "aarch64": "lscr.io/linuxserver/piwigo:arm64v8-latest", + "amd64": "lscr.io/linuxserver/piwigo:amd64-latest" + } } diff --git a/plex/build.json b/plex/build.json index 552ee2a1c..31dcec03f 100644 --- a/plex/build.json +++ b/plex/build.json @@ -1,6 +1,6 @@ { - "build_from": { - "aarch64": "lscr.io/linuxserver/plex:arm64v8-latest", - "amd64": "lscr.io/linuxserver/plex:amd64-latest" - } + "build_from": { + "aarch64": "lscr.io/linuxserver/plex:arm64v8-latest", + "amd64": "lscr.io/linuxserver/plex:amd64-latest" + } } diff --git a/portainer/build.json b/portainer/build.json index e6a3c7c0b..447e5ebb8 100644 --- a/portainer/build.json +++ b/portainer/build.json @@ -1,6 +1,6 @@ { - "build_from": { - "aarch64": "ghcr.io/hassio-addons/base/aarch64:16.0.0", - "amd64": "ghcr.io/hassio-addons/base/amd64:16.0.0" - } + "build_from": { + "aarch64": "ghcr.io/hassio-addons/base/aarch64:16.0.0", + "amd64": "ghcr.io/hassio-addons/base/amd64:16.0.0" + } } diff --git a/portainer_agent/build.json b/portainer_agent/build.json index fbeecb4e8..854df0c4d 100644 --- a/portainer_agent/build.json +++ b/portainer_agent/build.json @@ -1,6 +1,6 @@ { - "build_from": { - "aarch64": "ghcr.io/hassio-addons/base/aarch64:11.1.0", - "amd64": "ghcr.io/hassio-addons/base/amd64:11.1.0" - } + "build_from": { + "aarch64": "ghcr.io/hassio-addons/base/aarch64:11.1.0", + "amd64": "ghcr.io/hassio-addons/base/amd64:11.1.0" + } } diff --git a/postgres_15/build.json b/postgres_15/build.json index 30c3626ee..395b77b5f 100644 --- a/postgres_15/build.json +++ b/postgres_15/build.json @@ -1,6 +1,6 @@ { - "build_from": { - "aarch64": "ghcr.io/immich-app/postgres:15-vectorchord0.4.3-pgvectors0.3.0", - "amd64": "ghcr.io/immich-app/postgres:15-vectorchord0.4.3-pgvectors0.3.0" - } + "build_from": { + "aarch64": "ghcr.io/immich-app/postgres:15-vectorchord0.4.3-pgvectors0.3.0", + "amd64": "ghcr.io/immich-app/postgres:15-vectorchord0.4.3-pgvectors0.3.0" + } } diff --git a/qbittorrent/rootfs/etc/cont-init.d/94-wireguard.sh b/qbittorrent/rootfs/etc/cont-init.d/94-wireguard.sh index a68475513..a0c062747 100755 --- a/qbittorrent/rootfs/etc/cont-init.d/94-wireguard.sh +++ b/qbittorrent/rootfs/etc/cont-init.d/94-wireguard.sh @@ -50,7 +50,7 @@ if [ -z "${wireguard_config:-}" ]; then fi fi -dos2unix "${wireguard_config}" >/dev/null 2>&1 || true +dos2unix "${wireguard_config}" > /dev/null 2>&1 || true interface_name="$(basename "${wireguard_config}" .conf)" if [[ -z "${interface_name}" ]]; then @@ -60,7 +60,7 @@ fi wireguard_runtime_config="${WIREGUARD_STATE_DIR}/${interface_name}.conf" cp "${wireguard_config}" "${wireguard_runtime_config}" -chmod 600 "${wireguard_runtime_config}" 2>/dev/null || true +chmod 600 "${wireguard_runtime_config}" 2> /dev/null || true bashio::log.info 'Prepared WireGuard runtime configuration for initial connection attempt.' echo "${wireguard_runtime_config}" > "${WIREGUARD_STATE_DIR}/config" diff --git a/qbittorrent/rootfs/etc/s6-overlay/s6-rc.d/svc-qbittorrent/run b/qbittorrent/rootfs/etc/s6-overlay/s6-rc.d/svc-qbittorrent/run old mode 100644 new mode 100755 index 7128d30c2..b7aeab9d6 --- a/qbittorrent/rootfs/etc/s6-overlay/s6-rc.d/svc-qbittorrent/run +++ b/qbittorrent/rootfs/etc/s6-overlay/s6-rc.d/svc-qbittorrent/run @@ -29,11 +29,11 @@ else fi wireguard_config="$(cat "${WIREGUARD_STATE_DIR}/config")" - wireguard_interface="$(cat "${WIREGUARD_STATE_DIR}/interface" 2>/dev/null || echo 'wg0')" + wireguard_interface="$(cat "${WIREGUARD_STATE_DIR}/interface" 2> /dev/null || echo 'wg0')" if ip link show "${wireguard_interface}" &> /dev/null; then bashio::log.warning "WireGuard interface ${wireguard_interface} already exists. Attempting to reset it." - wg-quick down "${wireguard_config}" >/dev/null 2>&1 || true + wg-quick down "${wireguard_config}" > /dev/null 2>&1 || true fi bashio::log.info "Starting WireGuard interface ${wireguard_interface} using ${wireguard_config##*/}." @@ -44,12 +44,12 @@ else mkdir -p "${legacy_bin_dir}" for cmd in iptables iptables-save iptables-restore ip6tables ip6tables-save ip6tables-restore; do - if command -v "${cmd}-legacy" >/dev/null 2>&1; then + if command -v "${cmd}-legacy" > /dev/null 2>&1; then ln -sf "$(command -v "${cmd}-legacy")" "${legacy_bin_dir}/${cmd}" fi done - chmod 700 "${legacy_bin_dir}" 2>/dev/null || true + chmod 700 "${legacy_bin_dir}" 2> /dev/null || true export PATH="${legacy_bin_dir}:${PATH}" bashio::log.warning 'Retrying WireGuard bring-up using iptables-legacy wrappers.' } @@ -67,8 +67,8 @@ else fi if echo "${output}" | grep -qiE 'iptables-restore|ip6tables-restore|xtables'; then - if command -v iptables-legacy >/dev/null 2>&1 || command -v ip6tables-legacy >/dev/null 2>&1; then - wg-quick down "${config_path}" >/dev/null 2>&1 || true + if command -v iptables-legacy > /dev/null 2>&1 || command -v ip6tables-legacy > /dev/null 2>&1; then + wg-quick down "${config_path}" > /dev/null 2>&1 || true _wireguard_prepare_iptables_legacy output=$(wg-quick up "${config_path}" 2>&1) status=$? @@ -87,7 +87,7 @@ else ipv4_config="${WIREGUARD_STATE_DIR}/${wireguard_interface}-ipv4.conf" echo -n > "${ipv4_config}" - chmod 600 "${ipv4_config}" 2>/dev/null || true + chmod 600 "${ipv4_config}" 2> /dev/null || true while IFS= read -r line; do if [[ "${line}" =~ ^Endpoint ]]; then @@ -109,7 +109,7 @@ else fi done < "${wireguard_config}" - wg-quick down "${wireguard_config}" >/dev/null 2>&1 || true + wg-quick down "${wireguard_config}" > /dev/null 2>&1 || true if ! _wireguard_up_with_iptables_fallback "${ipv4_config}"; then bashio::log.error 'WireGuard failed to establish a connection after IPv4-only retry.' @@ -129,9 +129,9 @@ else bashio::log.info "WireGuard interface ${wireguard_interface} is up." # Refresh DNS resolver configuration if resolvconf is present - if command -v resolvconf >/dev/null 2>&1; then + if command -v resolvconf > /dev/null 2>&1; then bashio::log.info 'Refreshing DNS resolver configuration via resolvconf -u.' - if ! resolvconf -u >/dev/null 2>&1; then + if ! resolvconf -u > /dev/null 2>&1; then bashio::log.warning 'resolvconf -u failed. DNS configuration may not have been updated.' fi else diff --git a/qbittorrent/rootfs/etc/services.d/nginx/run b/qbittorrent/rootfs/etc/services.d/nginx/run old mode 100644 new mode 100755 index 2a36219f6..6866d9f2c --- a/qbittorrent/rootfs/etc/services.d/nginx/run +++ b/qbittorrent/rootfs/etc/services.d/nginx/run @@ -38,7 +38,7 @@ get_ip_info() { # Outputs: " " on success local json ip country - if ! json="$(curl -fsS --max-time 10 "${VPN_INFO_URL}" 2>/dev/null)"; then + if ! json="$(curl -fsS --max-time 10 "${VPN_INFO_URL}" 2> /dev/null)"; then bashio::log.warning "Unable to reach VPN info service at ${VPN_INFO_URL}." return 1 fi @@ -173,7 +173,7 @@ trap ' # Monitoring loop while true; do # If nginx died, stop this service and let s6 handle restart policy - if ! kill -0 "${nginx_pid}" 2>/dev/null; then + if ! kill -0 "${nginx_pid}" 2> /dev/null; then bashio::log.error "nginx process exited unexpectedly; leaving service." exit 1 fi @@ -193,8 +193,8 @@ while true; do if [[ -n "${REAL_IP}" ]] && [[ "${current_ip}" == "${REAL_IP}" ]]; then bashio::log.error "IP LEAK DETECTED: current external IP ${current_ip} matches real IP ${REAL_IP}." bashio::log.error "Stopping nginx and exiting so the supervisor can restart the add-on." - kill "${nginx_pid}" 2>/dev/null || true - wait "${nginx_pid}" 2>/dev/null || true + kill "${nginx_pid}" 2> /dev/null || true + wait "${nginx_pid}" 2> /dev/null || true exit 1 fi done diff --git a/qbittorrent/rootfs/etc/services.d/timer/run b/qbittorrent/rootfs/etc/services.d/timer/run old mode 100644 new mode 100755 diff --git a/qbittorrent/rootfs/usr/local/bin/resolvconf b/qbittorrent/rootfs/usr/local/bin/resolvconf index 3e2a91880..5377c09a1 100644 --- a/qbittorrent/rootfs/usr/local/bin/resolvconf +++ b/qbittorrent/rootfs/usr/local/bin/resolvconf @@ -7,80 +7,80 @@ BACKUP_FILE="${STATE_DIR}/resolv.conf.backup" mkdir -p "${STATE_DIR}" if [ "$#" -eq 0 ]; then - exit 0 + exit 0 fi command="$1" shift || true restore_backup() { - if [ -f "${BACKUP_FILE}" ]; then - cat "${BACKUP_FILE}" > /etc/resolv.conf - fi + if [ -f "${BACKUP_FILE}" ]; then + cat "${BACKUP_FILE}" >/etc/resolv.conf + fi } apply_dns() { - iface="$1" - shift || true + iface="$1" + shift || true - # Skip optional arguments such as -m or -x - while [ "$#" -gt 0 ]; do - case "$1" in - -m|-p|-w) - shift 2 || true - ;; - -x|-y|-Z) - shift 1 || true - ;; - --) - shift - break - ;; - *) - break - ;; - esac - done + # Skip optional arguments such as -m or -x + while [ "$#" -gt 0 ]; do + case "$1" in + -m | -p | -w) + shift 2 || true + ;; + -x | -y | -Z) + shift 1 || true + ;; + --) + shift + break + ;; + *) + break + ;; + esac + done - tmp_file="${STATE_DIR}/${iface}.conf" - cat > "${tmp_file}" + tmp_file="${STATE_DIR}/${iface}.conf" + cat >"${tmp_file}" - if [ ! -f "${BACKUP_FILE}" ]; then - cp /etc/resolv.conf "${BACKUP_FILE}" 2>/dev/null || true - fi + if [ ! -f "${BACKUP_FILE}" ]; then + cp /etc/resolv.conf "${BACKUP_FILE}" 2>/dev/null || true + fi - { - echo "# Generated by WireGuard add-on resolvconf shim" - cat "${tmp_file}" - } > /etc/resolv.conf + { + echo "# Generated by WireGuard add-on resolvconf shim" + cat "${tmp_file}" + } >/etc/resolv.conf } case "${command}" in - -a) - if [ "$#" -eq 0 ]; then - exit 0 - fi - apply_dns "$@" - ;; - -d) - if [ "$#" -gt 0 ]; then - rm -f "${STATE_DIR}/$1.conf" - fi - restore_backup - ;; - -u) - latest_conf="$(find "${STATE_DIR}" -maxdepth 1 -type f -name '*.conf' -print | head -n 1 || true)" - if [ -n "${latest_conf}" ] && [ -f "${latest_conf}" ]; then - { - echo "# Generated by WireGuard add-on resolvconf shim" - cat "${latest_conf}" - } > /etc/resolv.conf - else - restore_backup - fi - ;; - *) - # Treat other commands as successful no-ops to remain compatible with wg-quick. - exit 0 - ;; +-a) + if [ "$#" -eq 0 ]; then + exit 0 + fi + apply_dns "$@" + ;; +-d) + if [ "$#" -gt 0 ]; then + rm -f "${STATE_DIR}/$1.conf" + fi + restore_backup + ;; +-u) + latest_conf="$(find "${STATE_DIR}" -maxdepth 1 -type f -name '*.conf' -print | head -n 1 || true)" + if [ -n "${latest_conf}" ] && [ -f "${latest_conf}" ]; then + { + echo "# Generated by WireGuard add-on resolvconf shim" + cat "${latest_conf}" + } >/etc/resolv.conf + else + restore_backup + fi + ;; +*) + # Treat other commands as successful no-ops to remain compatible with wg-quick. + exit 0 + ;; esac diff --git a/qbittorrent/rootfs/usr/local/sbin/ip6tables-restore b/qbittorrent/rootfs/usr/local/sbin/ip6tables-restore index 9071cb34a..c1aea128b 100644 --- a/qbittorrent/rootfs/usr/local/sbin/ip6tables-restore +++ b/qbittorrent/rootfs/usr/local/sbin/ip6tables-restore @@ -3,68 +3,68 @@ set -euo pipefail REAL_IP6TABLES_RESTORE="/sbin/ip6tables-restore" if [[ ! -x "${REAL_IP6TABLES_RESTORE}" ]]; then - REAL_IP6TABLES_RESTORE="/usr/sbin/ip6tables-restore" + REAL_IP6TABLES_RESTORE="/usr/sbin/ip6tables-restore" fi cleanup() { - [[ -n "${RULES_FILE:-}" && -f "${RULES_FILE}" ]] && rm -f "${RULES_FILE}" - [[ -n "${SANITIZED_FILE:-}" && -f "${SANITIZED_FILE}" ]] && rm -f "${SANITIZED_FILE}" + [[ -n "${RULES_FILE:-}" && -f "${RULES_FILE}" ]] && rm -f "${RULES_FILE}" + [[ -n "${SANITIZED_FILE:-}" && -f "${SANITIZED_FILE}" ]] && rm -f "${SANITIZED_FILE}" } trap cleanup EXIT RULES_FILE="$(mktemp)" -cat > "${RULES_FILE}" +cat >"${RULES_FILE}" ipv6_unavailable() { - local message="$1" - [[ $message =~ [Tt]able[[:space:]]does[[:space:]]not[[:space:]]exist ]] && return 0 - [[ $message =~ address[[:space:]]family[[:space:]]not[[:space:]]supported ]] && return 0 - [[ $message =~ can[[:punct:]]t[[:space:]]initialize[[:space:]]ip6tables[[:space:]]table ]] && return 0 - [[ $message =~ IPv6[[:space:]]support[[:space:]]not[[:space:]]available ]] && return 0 - return 1 + local message="$1" + [[ $message =~ [Tt]able[[:space:]]does[[:space:]]not[[:space:]]exist ]] && return 0 + [[ $message =~ address[[:space:]]family[[:space:]]not[[:space:]]supported ]] && return 0 + [[ $message =~ can[[:punct:]]t[[:space:]]initialize[[:space:]]ip6tables[[:space:]]table ]] && return 0 + [[ $message =~ IPv6[[:space:]]support[[:space:]]not[[:space:]]available ]] && return 0 + return 1 } # First attempt with the original ruleset output="" -if output="$(${REAL_IP6TABLES_RESTORE} "$@" < "${RULES_FILE}" 2>&1)"; then - [[ -n "${output}" ]] && printf '%s\n' "${output}" >&2 - exit 0 +if output="$(${REAL_IP6TABLES_RESTORE} "$@" <"${RULES_FILE}" 2>&1)"; then + [[ -n "${output}" ]] && printf '%s\n' "${output}" >&2 + exit 0 fi status=$? # Retry without comment matches if the kernel is missing the comment module SANITIZED_FILE="$(mktemp)" -sed -E 's/-m[[:space:]]+comment[[:space:]]+--comment[[:space:]]+"[^"]*"//g' "${RULES_FILE}" > "${SANITIZED_FILE}" +sed -E 's/-m[[:space:]]+comment[[:space:]]+--comment[[:space:]]+"[^"]*"//g' "${RULES_FILE}" >"${SANITIZED_FILE}" retry_output="" -if retry_output="$(${REAL_IP6TABLES_RESTORE} "$@" < "${SANITIZED_FILE}" 2>&1)"; then - printf '%s\n' "ip6tables-restore failed with comment matches; reapplied without comments." >&2 - printf '%s\n' "Original error: ${output}" >&2 - [[ -n "${retry_output}" ]] && printf '%s\n' "${retry_output}" >&2 - exit 0 +if retry_output="$(${REAL_IP6TABLES_RESTORE} "$@" <"${SANITIZED_FILE}" 2>&1)"; then + printf '%s\n' "ip6tables-restore failed with comment matches; reapplied without comments." >&2 + printf '%s\n' "Original error: ${output}" >&2 + [[ -n "${retry_output}" ]] && printf '%s\n' "${retry_output}" >&2 + exit 0 fi retry_status=$? # Final fallback: try legacy backend if available legacy_output="" for legacy in /sbin/ip6tables-restore-legacy /usr/sbin/ip6tables-restore-legacy; do - if [[ -x "${legacy}" ]]; then - if legacy_output="$(${legacy} "$@" < "${RULES_FILE}" 2>&1)"; then - printf '%s\n' "ip6tables-restore failed; succeeded using legacy backend." >&2 - printf '%s\n' "Original error: ${output}" >&2 - [[ -n "${legacy_output}" ]] && printf '%s\n' "${legacy_output}" >&2 - exit 0 - fi - fi + if [[ -x "${legacy}" ]]; then + if legacy_output="$(${legacy} "$@" <"${RULES_FILE}" 2>&1)"; then + printf '%s\n' "ip6tables-restore failed; succeeded using legacy backend." >&2 + printf '%s\n' "Original error: ${output}" >&2 + [[ -n "${legacy_output}" ]] && printf '%s\n' "${legacy_output}" >&2 + exit 0 + fi + fi done if ipv6_unavailable "${output}" || ipv6_unavailable "${retry_output}" || ipv6_unavailable "${legacy_output}"; then - printf '%s\n' "IPv6 firewall support not detected; skipping IPv6 ruleset restore and continuing." >&2 - printf '%s\n' "Original error: ${output}" >&2 - [[ -n "${retry_output}" ]] && printf '%s\n' "Sanitized retry error: ${retry_output}" >&2 - [[ -n "${legacy_output}" ]] && printf '%s\n' "Legacy backend error: ${legacy_output}" >&2 - exit 0 + printf '%s\n' "IPv6 firewall support not detected; skipping IPv6 ruleset restore and continuing." >&2 + printf '%s\n' "Original error: ${output}" >&2 + [[ -n "${retry_output}" ]] && printf '%s\n' "Sanitized retry error: ${retry_output}" >&2 + [[ -n "${legacy_output}" ]] && printf '%s\n' "Legacy backend error: ${legacy_output}" >&2 + exit 0 fi printf '%s\n' "ip6tables-restore failed and fallbacks were unsuccessful." >&2 diff --git a/qbittorrent/rootfs/usr/local/sbin/iptables-restore b/qbittorrent/rootfs/usr/local/sbin/iptables-restore index bbe11f8f0..376db450c 100644 --- a/qbittorrent/rootfs/usr/local/sbin/iptables-restore +++ b/qbittorrent/rootfs/usr/local/sbin/iptables-restore @@ -3,47 +3,47 @@ set -euo pipefail REAL_IPTABLES_RESTORE="/sbin/iptables-restore" if [[ ! -x "${REAL_IPTABLES_RESTORE}" ]]; then - REAL_IPTABLES_RESTORE="/usr/sbin/iptables-restore" + REAL_IPTABLES_RESTORE="/usr/sbin/iptables-restore" fi cleanup() { - [[ -n "${RULES_FILE:-}" && -f "${RULES_FILE}" ]] && rm -f "${RULES_FILE}" - [[ -n "${SANITIZED_FILE:-}" && -f "${SANITIZED_FILE}" ]] && rm -f "${SANITIZED_FILE}" + [[ -n "${RULES_FILE:-}" && -f "${RULES_FILE}" ]] && rm -f "${RULES_FILE}" + [[ -n "${SANITIZED_FILE:-}" && -f "${SANITIZED_FILE}" ]] && rm -f "${SANITIZED_FILE}" } trap cleanup EXIT RULES_FILE="$(mktemp)" -cat > "${RULES_FILE}" +cat >"${RULES_FILE}" # First attempt with the original ruleset -if output="$(${REAL_IPTABLES_RESTORE} "$@" < "${RULES_FILE}" 2>&1)"; then - [[ -n "${output}" ]] && printf '%s\n' "${output}" >&2 - exit 0 +if output="$(${REAL_IPTABLES_RESTORE} "$@" <"${RULES_FILE}" 2>&1)"; then + [[ -n "${output}" ]] && printf '%s\n' "${output}" >&2 + exit 0 fi status=$? # Retry without comment matches if the kernel is missing the comment module SANITIZED_FILE="$(mktemp)" -sed -E 's/-m[[:space:]]+comment[[:space:]]+--comment[[:space:]]+"[^"]*"//g' "${RULES_FILE}" > "${SANITIZED_FILE}" +sed -E 's/-m[[:space:]]+comment[[:space:]]+--comment[[:space:]]+"[^"]*"//g' "${RULES_FILE}" >"${SANITIZED_FILE}" -if retry_output="$(${REAL_IPTABLES_RESTORE} "$@" < "${SANITIZED_FILE}" 2>&1)"; then - printf '%s\n' "iptables-restore failed with comment matches; reapplied without comments." >&2 - printf '%s\n' "Original error: ${output}" >&2 - [[ -n "${retry_output}" ]] && printf '%s\n' "${retry_output}" >&2 - exit 0 +if retry_output="$(${REAL_IPTABLES_RESTORE} "$@" <"${SANITIZED_FILE}" 2>&1)"; then + printf '%s\n' "iptables-restore failed with comment matches; reapplied without comments." >&2 + printf '%s\n' "Original error: ${output}" >&2 + [[ -n "${retry_output}" ]] && printf '%s\n' "${retry_output}" >&2 + exit 0 fi retry_status=$? # Final fallback: try legacy backend if available for legacy in /sbin/iptables-restore-legacy /usr/sbin/iptables-restore-legacy; do - if [[ -x "${legacy}" ]]; then - if legacy_output="$(${legacy} "$@" < "${RULES_FILE}" 2>&1)"; then - printf '%s\n' "iptables-restore failed; succeeded using legacy backend." >&2 - printf '%s\n' "Original error: ${output}" >&2 - [[ -n "${legacy_output}" ]] && printf '%s\n' "${legacy_output}" >&2 - exit 0 - fi - fi + if [[ -x "${legacy}" ]]; then + if legacy_output="$(${legacy} "$@" <"${RULES_FILE}" 2>&1)"; then + printf '%s\n' "iptables-restore failed; succeeded using legacy backend." >&2 + printf '%s\n' "Original error: ${output}" >&2 + [[ -n "${legacy_output}" ]] && printf '%s\n' "${legacy_output}" >&2 + exit 0 + fi + fi done printf '%s\n' "iptables-restore failed and fallbacks were unsuccessful." >&2 diff --git a/qbittorrent/rootfs/usr/local/sbin/sysctl b/qbittorrent/rootfs/usr/local/sbin/sysctl index b76c18c88..2fd0df6d2 100644 --- a/qbittorrent/rootfs/usr/local/sbin/sysctl +++ b/qbittorrent/rootfs/usr/local/sbin/sysctl @@ -3,15 +3,15 @@ set -euo pipefail REAL_SYSCTL="/sbin/sysctl" if [[ ! -x "${REAL_SYSCTL}" ]]; then - REAL_SYSCTL="/usr/sbin/sysctl" + REAL_SYSCTL="/usr/sbin/sysctl" fi if [[ "$#" -ge 2 && "$1" == "-q" && "$2" == "net.ipv4.conf.all.src_valid_mark=1" ]]; then - if "${REAL_SYSCTL}" "$@" >/dev/null 2>&1; then - exit 0 - fi - # Suppress failure for this specific key to keep wg-quick from aborting in unprivileged environments. - exit 0 + if "${REAL_SYSCTL}" "$@" >/dev/null 2>&1; then + exit 0 + fi + # Suppress failure for this specific key to keep wg-quick from aborting in unprivileged environments. + exit 0 fi exec "${REAL_SYSCTL}" "$@" diff --git a/radarr/build.json b/radarr/build.json index 50866ba02..49763b72d 100644 --- a/radarr/build.json +++ b/radarr/build.json @@ -1,6 +1,6 @@ { - "build_from": { - "aarch64": "lscr.io/linuxserver/radarr:arm64v8-latest", - "amd64": "lscr.io/linuxserver/radarr:amd64-latest" - } + "build_from": { + "aarch64": "lscr.io/linuxserver/radarr:arm64v8-latest", + "amd64": "lscr.io/linuxserver/radarr:amd64-latest" + } } diff --git a/readarr/rootfs/etc/services.d/nginx/run b/readarr/rootfs/etc/services.d/nginx/run old mode 100644 new mode 100755 diff --git a/requestrr/build.json b/requestrr/build.json index 6827bae53..d6345ddcc 100644 --- a/requestrr/build.json +++ b/requestrr/build.json @@ -1,6 +1,6 @@ { - "build_from": { - "aarch64": "thomst08/requestrr:arm64-latest", - "amd64": "thomst08/requestrr:linux-latest" - } + "build_from": { + "aarch64": "thomst08/requestrr:arm64-latest", + "amd64": "thomst08/requestrr:linux-latest" + } } diff --git a/seafile/build.json b/seafile/build.json index b4a3170e5..f795d82c8 100644 --- a/seafile/build.json +++ b/seafile/build.json @@ -1,6 +1,6 @@ { - "build_from": { - "aarch64": "franchetti/seafile-arm:latest", - "amd64": "franchetti/seafile-arm:latest" - } + "build_from": { + "aarch64": "franchetti/seafile-arm:latest", + "amd64": "franchetti/seafile-arm:latest" + } } diff --git a/signalk/build.json b/signalk/build.json index 35fea3d0b..100c9489e 100644 --- a/signalk/build.json +++ b/signalk/build.json @@ -1,6 +1,6 @@ { - "build_from": { - "aarch64": "ghcr.io/signalk/signalk-server:latest", - "amd64": "ghcr.io/signalk/signalk-server:latest" - } + "build_from": { + "aarch64": "ghcr.io/signalk/signalk-server:latest", + "amd64": "ghcr.io/signalk/signalk-server:latest" + } } diff --git a/sonarr/build.json b/sonarr/build.json index e8857e5fa..7efa2ae92 100644 --- a/sonarr/build.json +++ b/sonarr/build.json @@ -1,6 +1,6 @@ { - "build_from": { - "aarch64": "lscr.io/linuxserver/sonarr:arm64v8-develop", - "amd64": "lscr.io/linuxserver/sonarr:amd64-develop" - } + "build_from": { + "aarch64": "lscr.io/linuxserver/sonarr:arm64v8-develop", + "amd64": "lscr.io/linuxserver/sonarr:amd64-develop" + } } diff --git a/sponsorblockcast/build.json b/sponsorblockcast/build.json index ac16c220d..4f0759353 100644 --- a/sponsorblockcast/build.json +++ b/sponsorblockcast/build.json @@ -1,6 +1,6 @@ { - "build_from": { - "aarch64": "ghcr.io/gabe565/castsponsorskip:latest", - "amd64": "ghcr.io/gabe565/castsponsorskip:latest" - } + "build_from": { + "aarch64": "ghcr.io/gabe565/castsponsorskip:latest", + "amd64": "ghcr.io/gabe565/castsponsorskip:latest" + } } diff --git a/teamspeak/build.json b/teamspeak/build.json index 69cd86591..5efe17e43 100644 --- a/teamspeak/build.json +++ b/teamspeak/build.json @@ -1,6 +1,6 @@ { - "build_from": { - "aarch64": "ertagh/teamspeak3-server:latest-predownloaded", - "amd64": "ertagh/teamspeak3-server:x64-latest-predownloaded" - } + "build_from": { + "aarch64": "ertagh/teamspeak3-server:latest-predownloaded", + "amd64": "ertagh/teamspeak3-server:x64-latest-predownloaded" + } } diff --git a/tor/build.json b/tor/build.json index b9f7a012e..bc150930b 100644 --- a/tor/build.json +++ b/tor/build.json @@ -1,6 +1,6 @@ { - "build_from": { - "aarch64": "ghcr.io/hassio-addons/base:17.2.0", - "amd64": "ghcr.io/hassio-addons/base:17.2.0" - } + "build_from": { + "aarch64": "ghcr.io/hassio-addons/base:17.2.0", + "amd64": "ghcr.io/hassio-addons/base:17.2.0" + } } diff --git a/transmission/build.json b/transmission/build.json index 9a5f7680b..6ab6a555f 100644 --- a/transmission/build.json +++ b/transmission/build.json @@ -1,6 +1,6 @@ { - "build_from": { - "aarch64": "lscr.io/linuxserver/transmission:arm64v8-latest", - "amd64": "lscr.io/linuxserver/transmission:amd64-latest" - } + "build_from": { + "aarch64": "lscr.io/linuxserver/transmission:arm64v8-latest", + "amd64": "lscr.io/linuxserver/transmission:amd64-latest" + } } diff --git a/transmission_openvpn/build.json b/transmission_openvpn/build.json index 7f5e81da8..2eecb4236 100644 --- a/transmission_openvpn/build.json +++ b/transmission_openvpn/build.json @@ -1,6 +1,6 @@ { - "build_from": { - "aarch64": "haugene/transmission-openvpn:latest", - "amd64": "haugene/transmission-openvpn:latest" - } + "build_from": { + "aarch64": "haugene/transmission-openvpn:latest", + "amd64": "haugene/transmission-openvpn:latest" + } } diff --git a/xteve/build.json b/xteve/build.json index 205dd17dd..cadde16b4 100644 --- a/xteve/build.json +++ b/xteve/build.json @@ -1,6 +1,6 @@ { - "build_from": { - "aarch64": "senexcrenshaw/xteve:latest", - "amd64": "senexcrenshaw/xteve:latest" - } + "build_from": { + "aarch64": "senexcrenshaw/xteve:latest", + "amd64": "senexcrenshaw/xteve:latest" + } } diff --git a/zzz_archived_code-server/build.json b/zzz_archived_code-server/build.json index 36cbabcfb..6ce440364 100644 --- a/zzz_archived_code-server/build.json +++ b/zzz_archived_code-server/build.json @@ -1,6 +1,6 @@ { - "build_from": { - "aarch64": "lscr.io/linuxserver/code-server:arm64v8-latest", - "amd64": "lscr.io/linuxserver/code-server:amd64-latest" - } + "build_from": { + "aarch64": "lscr.io/linuxserver/code-server:arm64v8-latest", + "amd64": "lscr.io/linuxserver/code-server:amd64-latest" + } } diff --git a/zzz_archived_papermerge/build.json b/zzz_archived_papermerge/build.json index af3ebd6f8..a27918a65 100644 --- a/zzz_archived_papermerge/build.json +++ b/zzz_archived_papermerge/build.json @@ -1,6 +1,6 @@ { - "build_from": { - "aarch64": "lscr.io/linuxserver/papermerge:arm64v8-latest", - "amd64": "lscr.io/linuxserver/papermerge:amd64-latest" - } + "build_from": { + "aarch64": "lscr.io/linuxserver/papermerge:arm64v8-latest", + "amd64": "lscr.io/linuxserver/papermerge:amd64-latest" + } } diff --git a/zzz_archived_plex_meta_manager/build.json b/zzz_archived_plex_meta_manager/build.json index 54faea6c6..f3ead0de0 100644 --- a/zzz_archived_plex_meta_manager/build.json +++ b/zzz_archived_plex_meta_manager/build.json @@ -1,6 +1,6 @@ { - "build_from": { - "aarch64": "lscr.io/linuxserver/plex-meta-manager:arm64v8-latest", - "amd64": "lscr.io/linuxserver/plex-meta-manager:amd64-latest" - } + "build_from": { + "aarch64": "lscr.io/linuxserver/plex-meta-manager:arm64v8-latest", + "amd64": "lscr.io/linuxserver/plex-meta-manager:amd64-latest" + } }