error out if stdout is a tty
This commit is contained in:
parent
117a1591c5
commit
d82afec5de
3 changed files with 21 additions and 2 deletions
|
@ -322,3 +322,5 @@ Modes: fakechroot
|
||||||
Test: dev-ptmx
|
Test: dev-ptmx
|
||||||
Modes: root unshare
|
Modes: root unshare
|
||||||
Needs-QEMU: true
|
Needs-QEMU: true
|
||||||
|
|
||||||
|
Test: error-if-stdout-is-tty
|
||||||
|
|
|
@ -37,7 +37,8 @@ use Cwd qw(abs_path getcwd);
|
||||||
require "syscall.ph"; ## no critic (Modules::RequireBarewordIncludes)
|
require "syscall.ph"; ## no critic (Modules::RequireBarewordIncludes)
|
||||||
use Fcntl qw(S_IFCHR S_IFBLK FD_CLOEXEC F_GETFD F_SETFD);
|
use Fcntl qw(S_IFCHR S_IFBLK FD_CLOEXEC F_GETFD F_SETFD);
|
||||||
use List::Util qw(any none);
|
use List::Util qw(any none);
|
||||||
use POSIX qw(SIGINT SIGHUP SIGPIPE SIGTERM SIG_BLOCK SIG_UNBLOCK strftime);
|
use POSIX
|
||||||
|
qw(SIGINT SIGHUP SIGPIPE SIGTERM SIG_BLOCK SIG_UNBLOCK strftime isatty);
|
||||||
use Carp;
|
use Carp;
|
||||||
use Term::ANSIColor;
|
use Term::ANSIColor;
|
||||||
use Socket;
|
use Socket;
|
||||||
|
@ -5126,7 +5127,11 @@ sub main() {
|
||||||
$options->{sourceslists} = $sourceslists;
|
$options->{sourceslists} = $sourceslists;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($options->{target} ne '-') {
|
if ($options->{target} eq '-') {
|
||||||
|
if (POSIX::isatty STDOUT) {
|
||||||
|
error "stdout is a an interactive tty";
|
||||||
|
}
|
||||||
|
} else {
|
||||||
my $abs_path = abs_path($options->{target});
|
my $abs_path = abs_path($options->{target});
|
||||||
if (!defined $abs_path) {
|
if (!defined $abs_path) {
|
||||||
error "unable to get absolute path of target directory"
|
error "unable to get absolute path of target directory"
|
||||||
|
|
12
tests/error-if-stdout-is-tty
Normal file
12
tests/error-if-stdout-is-tty
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
export LC_ALL=C.UTF-8
|
||||||
|
|
||||||
|
ret=0
|
||||||
|
script -qfec "{{ CMD }} --mode={{ MODE }} --variant=apt {{ DIST }} - {{ MIRROR }}" /dev/null || ret=$?
|
||||||
|
if [ "$ret" = 0 ]; then
|
||||||
|
echo expected failure but got exit $ret >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
Loading…
Reference in a new issue