Commit 472dfb38 authored by Robert Hensing's avatar Robert Hensing
Browse files

nixos-rebuild: Add tty only to "sudo-able" commands for target

This solves again the problem solved by 09fd207c.

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.
parent 99d3e0c1
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -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
}