Need help with atty?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

softprops
187 Stars 34 Forks MIT License 132 Commits 19 Opened issues

Description

are you or are you not a tty?

Services available

!
?

Need anything else?

Contributors list

# 27,015
Rust
scalajs
serverl...
aws-lam...
96 commits
# 965
Rust
Shell
automat...
nfa
3 commits
# 4,806
Rust
nfa
webasse...
rfc
2 commits
# 6,803
Rust
raft
rocksdb
Go
2 commits
# 38,227
Erlang
Elixir
s3
cowboy
1 commit
# 85,705
Rust
Shell
unikern...
rust-la...
1 commit
# 45,272
eclipse
jvm-lan...
propert...
jvm
1 commit
# 41,038
Django
euler
gzip
grep
1 commit
# 37,289
Rust
Ada
webasse...
microke...
1 commit
# 17,709
Rust
Shell
Sublime...
keyboar...
1 commit
# 300,954
Rust
Shell
XML
gnuplot
1 commit
# 106,512
Rust
Vue.js
carouse...
microke...
1 commit
# 479,537
vulkan
spir-v
graphic...
Rust
1 commit

atty

Build Status Build status Coverage Status crates.io Released API docs Master API docs

are you or are you not a tty?

install

Add the following to your

Cargo.toml
[dependencies]
atty = "0.2"

usage

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

$ cargo run --example atty
stdout? true
stderr? true
stdin? true

To test std in, pipe some text to the program

$ echo "test" | cargo run --example atty
stdout? true
stderr? true
stdin? false

To test std out, pipe the program to something

$ cargo run --example atty | grep std
stdout? false
stderr? true
stdin? true

To test std err, pipe the program to something redirecting std err

$ cargo run --example atty 2>&1 | grep std
stdout? false
stderr? false
stdin? true

Doug Tangren (softprops) 2015-2019

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.