use python rather than unbuffer

because unbuffer eats exit code when process is killed
This commit is contained in:
Patrick Schleizer 2017-02-27 23:16:32 +00:00
parent cc351165dc
commit 2130b4c654
No known key found for this signature in database
GPG Key ID: CB8D50BB77BB3C48
2 changed files with 9 additions and 3 deletions

4
debian/control vendored
View File

@ -1,4 +1,4 @@
## Copyright (C) 2012 - 2014 Patrick Schleizer <adrelanos@riseup.net>
## Copyright (C) 2012 - 2017 Patrick Schleizer <adrelanos@riseup.net>
## See the file COPYING for copying conditions.
Source: security-misc
@ -13,7 +13,7 @@ Standards-Version: 3.9.8
Package: security-misc
Architecture: all
Depends: expect, tcl8.6, ${misc:Depends}
Depends: python, ${misc:Depends}
Replaces: tcp-timestamps-disable
Description: enhances misc security settings
The following settings are changed:

View File

@ -20,12 +20,18 @@ logfile="$temp_dir/log"
trap "cleanup" EXIT
apt_get_exit_code="0"
unbuffer apt-get "$@" 1> >(tee -a "$logfile") 2> >(tee -a "$logfile" >&2) || { apt_get_exit_code="$?"; true; };
python -c 'import pty, sys; pty.spawn(sys.argv[1:])' \
| apt-get "$@" 2>&1 \
| tee -a "$logfile" \
|| { apt_get_exit_code="$?"; true; };
if [ ! "$apt_get_exit_code" = "0" ]; then
exit "$apt_get_exit_code"
fi
log="$(cat "$logfile")"
while read -r -d $'\n' line; do
line_lower_case="${line,,}"
first_two="${line_lower_case:0:2}"