# atty [![Build Status](https://travis-ci.org/softprops/atty.svg?branch=master)](https://travis-ci.org/softprops/atty) [![Build status](https://ci.appveyor.com/api/projects/status/geggrsnsjsuse8cv?svg=true)](https://ci.appveyor.com/project/softprops/atty) [![Coverage Status](https://coveralls.io/repos/softprops/atty/badge.svg?branch=master&service=github)](https://coveralls.io/github/softprops/atty?branch=master) [![crates.io](https://img.shields.io/crates/v/atty.svg)](https://crates.io/crates/atty) [![Released API docs](https://docs.rs/atty/badge.svg)](http://docs.rs/atty) [![Master API docs](https://img.shields.io/badge/docs-master-green.svg)](https://softprops.github.io/atty) > are you or are you not a tty? ## install Add the following to your `Cargo.toml` ```toml [dependencies] atty = "0.2" ``` ## usage ```rust use atty::Stream; fn main() { if atty::is(Stream::Stdout) { println!("I'm a terminal"); } else { println!("I'm not"); } } ``` ## testing This library has been unit tested on both unix and windows platforms (via appveyor). A simple example program is provided in this repo to test various tty's. By default. It prints ```bash $ cargo run --example atty stdout? true stderr? true stdin? true ``` To test std in, pipe some text to the program ```bash $ echo "test" | cargo run --example atty stdout? true stderr? true stdin? false ``` To test std out, pipe the program to something ```bash $ cargo run --example atty | grep std stdout? false stderr? true stdin? true ``` To test std err, pipe the program to something redirecting std err ```bash $ cargo run --example atty 2>&1 | grep std stdout? false stderr? false stdin? true ``` Doug Tangren (softprops) 2015-2019