1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
use crate::prelude::*; use nu_engine::WholeStreamCommand; use nu_errors::ShellError; use nu_protocol::Signature; use std::process::Command; pub struct Clear; impl WholeStreamCommand for Clear { fn name(&self) -> &str { "clear" } fn signature(&self) -> Signature { Signature::build("clear") } fn usage(&self) -> &str { "Clears the terminal." } fn run(&self, _: CommandArgs) -> Result<InputStream, ShellError> { if cfg!(windows) { Command::new("cmd") .args(&["/C", "cls"]) .status() .expect("failed to execute process"); } else if cfg!(unix) { Command::new("/bin/sh") .args(&["-c", "clear"]) .status() .expect("failed to execute process"); } Ok(InputStream::empty()) } fn examples(&self) -> Vec<Example> { vec![Example { description: "Clear the screen", example: "clear", result: None, }] } }