From 472dfb38884dcbaed042b69fab6249fe58819939 Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Sun, 14 Jan 2024 01:14:33 +0100 Subject: [PATCH] nixos-rebuild: Add tty only to "sudo-able" commands for target This solves again the problem solved by 09fd207cb8a6a1e654cdc9dc49610ebd456fe05d. To quote: > We always want to use `ssh -t` to force PTY allocation as there may be > interactive SSH prompts like trusting unknown hosts. However, the creation of a pseudoterminal causes the remote stdout and stderr to point to the same tty, resulting in a single stream in the ssh client, which breaks other usages of ssh, such as `--build-host`. Hence, this commit only sets the flag for invocations that need it - or would need it if sudo were disabled. That should help with development and gives a somewhat more consistent user experience. --- pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh b/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh index ba8c8fc537a3..1b7ec45ae2d3 100755 --- a/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh +++ b/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh @@ -196,9 +196,11 @@ targetHostCmd() { targetHostSudoCmd() { if [ -n "$remoteSudo" ]; then - useSudo=1 targetHostCmd "$@" + useSudo=1 SSHOPTS="$SSHOPTS -t" targetHostCmd "$@" else - targetHostCmd "$@" + # While a tty might not be necessary, we apply it to be consistent with + # sudo usage, and an experience that is more consistent with local deployment. + SSHOPTS="$SSHOPTS -t" targetHostCmd "$@" fi }