generate-alt-random: ioctl(TIOCGWINSZ) may fail in run inside a container

This _should_ only happen when we’re doing a partial PGO build, since
then the script is run in the parent terminal. In this case, the user
is expected to use --rows/--cols anyway.
This commit is contained in:
Daniel Eklöf 2020-12-21 13:40:53 +01:00
parent aa13dfb4e8
commit e4ae5a7586
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
2 changed files with 18 additions and 5 deletions

View file

@ -37,11 +37,17 @@ def main():
opts = parser.parse_args()
out = opts.out if opts.out is not None else sys.stdout
lines, cols, height, width = struct.unpack(
'HHHH',
fcntl.ioctl(sys.stdout.fileno(),
termios.TIOCGWINSZ,
struct.pack('HHHH', 0, 0, 0, 0)))
try:
lines, cols, height, width = struct.unpack(
'HHHH',
fcntl.ioctl(sys.stdout.fileno(),
termios.TIOCGWINSZ,
struct.pack('HHHH', 0, 0, 0, 0)))
except OSError:
lines = None
cols = None
height = None
width = None
if opts.rows is not None:
lines = opts.rows
@ -50,6 +56,9 @@ def main():
cols = opts.cols
width = 8 * cols # PGO help binary hardcodes cell width to 8px
if lines is None or cols is None or height is None or width is None:
raise Exception('could not get terminal width/height; use --rows and --cols')
# Number of characters to write to screen
count = 256 * 1024**1