From 78d281fce111dec47154e02a6f70c1f7a6346ad5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20=C4=8Cerm=C3=A1k?= Date: Mon, 8 Apr 2024 15:43:12 +0200 Subject: [PATCH] Only run HA CLI interactively if stdout is a terminal (#3292) * Only run HA CLI interactively if stdout is a terminal Flags for running HA CLI commands in an interactive shell added in #3238 cause the command to fail if the process is not running in a terminal. This is needed for example for the fsfreeze hook, otherwise the command fails, as seen in this trace when the hook is executed: ----------- + '[' thaw '=' freeze ] + '[' thaw '=' thaw ] + echo 'File system thaw requested, thawing Home Assistant' File system thaw requested, thawing Home Assistant + ha backups thaw the input device is not a TTY ------------ However, for example on Proxmox this message is not logged anywhere and the hook just fails silently (i.e. it doesn't cause the backup to fail). Fixes #3251 * Use -i also when not running in a terminal --- buildroot-external/rootfs-overlay/usr/bin/ha | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/buildroot-external/rootfs-overlay/usr/bin/ha b/buildroot-external/rootfs-overlay/usr/bin/ha index 351d59742..fbf20c702 100755 --- a/buildroot-external/rootfs-overlay/usr/bin/ha +++ b/buildroot-external/rootfs-overlay/usr/bin/ha @@ -3,4 +3,9 @@ # HA utility # ============================================================================== -docker exec -it hassio_cli ha "$@" +if [ -t 1 ]; then + # stdout (fd 1) must be terminal, otherwise `-t` causes error + docker exec -it hassio_cli ha "$@" +else + docker exec -i hassio_cli ha "$@" +fi