summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpierresy <pierre-henri.symoneaux@alcatel-lucent.com>2016-02-14 15:47:29 +0100
committerpierresy <pierre-henri.symoneaux@alcatel-lucent.com>2016-02-14 15:47:29 +0100
commit9806281ebec96854dbd74d45c3c3716c612e0ef3 (patch)
treee9a6bb6ec1ed49682cae70f54852f3835ed694ef
parenteaff73df9751b9c9163bca003f2be5a14ba40761 (diff)
Detect if attached to a tty standard output when calling Table.printstd().
Printing using term (for colors, etc...) is performed only if output is a tty, else, fallbacks to normal printing
-rw-r--r--Cargo.toml1
-rw-r--r--src/format.rs2
-rw-r--r--src/lib.rs7
3 files changed, 6 insertions, 4 deletions
diff --git a/Cargo.toml b/Cargo.toml
index 0230746..d0a1325 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -22,3 +22,4 @@ name = "prettytable"
unicode-width = "^0.1"
term = "^0.4"
lazy_static = "^0.1"
+atty = "^0.1"
diff --git a/src/format.rs b/src/format.rs
index c4b874e..c9546b7 100644
--- a/src/format.rs
+++ b/src/format.rs
@@ -197,7 +197,7 @@ impl Default for TableFormat {
}
}
-/// A builder to create a `Table Format`
+/// A builder to create a `TableFormat`
pub struct FormatBuilder {
format: Box<TableFormat>
}
diff --git a/src/lib.rs b/src/lib.rs
index 7e373e1..b2e77e2 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,6 +1,7 @@
//! A formatted and aligned table printer written in rust
extern crate unicode_width;
extern crate term;
+extern crate atty;
#[macro_use] extern crate lazy_static;
use std::io;
@@ -147,9 +148,9 @@ impl <'a> TableSlice<'a> {
/// # Panic
/// Panic if writing to standard output fails
pub fn printstd(&self) {
- let r = match stdout() {
- Some(mut o) => self.print_term(&mut *o),
- None => self.print(&mut io::stdout()),
+ let r = match (stdout(), atty::is()) {
+ (Some(mut o), true) => self.print_term(&mut *o),
+ _ => self.print(&mut io::stdout()),
};
if let Err(e) = r {
panic!("Cannot print table to standard output : {}", e);