From d967fc0920f99c082de098cb9f2d6909996b91c2 Mon Sep 17 00:00:00 2001 From: Gregory Ballantine Date: Sun, 7 Aug 2022 09:37:33 -0400 Subject: [PATCH] Added a function for truncating output --- src/main.rs | 1 + src/tests/network.rs | 10 ++++++++-- src/text/format.rs | 8 ++++++++ src/text/mod.rs | 1 + 4 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 src/text/format.rs create mode 100644 src/text/mod.rs diff --git a/src/main.rs b/src/main.rs index 48d26a2..b9adf71 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,5 @@ mod tests; +mod text; use clap::{Args, Parser, Subcommand}; diff --git a/src/tests/network.rs b/src/tests/network.rs index 4aad26a..99d3b93 100644 --- a/src/tests/network.rs +++ b/src/tests/network.rs @@ -1,6 +1,8 @@ use chrono::prelude::*; use std::{fs,process}; +use crate::text; + // ping a host pub fn ping_host(host: &str, count: &u16) { println!("Pinging host {}, {} times.", host, count); @@ -15,8 +17,12 @@ pub fn ping_host(host: &str, count: &u16) { // check that the command succeeded assert!(output.status.success()); - // print out the ping results from stdout - println!("{}", String::from_utf8_lossy(&output.stdout)); + // grab the ping results from stdout + let results_raw = &String::from_utf8_lossy(&output.stdout); + let results = text::format::trim_output(results_raw, 4); + for line in results { + println!("{}", line); + } } // timed file copy test to guage bandwidth speeds diff --git a/src/text/format.rs b/src/text/format.rs new file mode 100644 index 0000000..8d97883 --- /dev/null +++ b/src/text/format.rs @@ -0,0 +1,8 @@ +use std::vec::Vec; + +pub fn trim_output(text: &str, linecount: u16) -> Vec<&str> { + let text_vec: Vec<&str> = text.split("\n").collect(); + let text_start = text_vec.len() - (linecount as usize); + let text_trim = text_vec.as_slice()[text_start..].to_vec(); + return text_trim; +} diff --git a/src/text/mod.rs b/src/text/mod.rs new file mode 100644 index 0000000..db7b59d --- /dev/null +++ b/src/text/mod.rs @@ -0,0 +1 @@ +pub mod format;