From 44d072de942e5c616c4e4a7a1440db048ee5df45 Mon Sep 17 00:00:00 2001 From: Denis Isidoro Date: Tue, 10 Mar 2020 13:32:22 -0300 Subject: [PATCH] Be more defensive with /dev/tty (#219) --- src/terminal.rs | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/terminal.rs b/src/terminal.rs index ae1934c..2aed7c8 100644 --- a/src/terminal.rs +++ b/src/terminal.rs @@ -37,11 +37,16 @@ fn width_with_fd() -> u16 { use std::fs; use std::os::unix::io::AsRawFd; - let file = fs::File::open("/dev/tty").unwrap(); - let size = terminal_size_using_fd(file.as_raw_fd()); + let file = fs::File::open("/dev/tty"); - if let Some((Width(w), Height(_))) = size { - w + if let Ok(f) = file { + let size = terminal_size_using_fd(f.as_raw_fd()); + + if let Some((Width(w), Height(_))) = size { + w + } else { + width_with_shell_out() + } } else { width_with_shell_out() }