Skip to content

Commit a0d9c1f

Browse files
committed
Clean up yes command
1 parent 461f693 commit a0d9c1f

File tree

1 file changed

+8
-18
lines changed

1 file changed

+8
-18
lines changed

src/bin/yes.rs

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,22 @@ use std::{
66
use puppyutils::{Result, cli};
77

88
pub fn main() -> Result {
9-
// No point in locking stdout since we only use it once in this program
109
let mut stdout = stdout();
1110

12-
let mut buffer = None;
11+
let mut buffer: Option<String> = None;
1312

14-
let arg_parser = cli! {
13+
cli! {
1514
"yes", stdout, #error
1615
Value(value) => {
17-
extend_buffer(&mut buffer, value);
16+
if let Some(ref mut buffer) = buffer {
17+
buffer.push(' '); // Manually put the space
18+
buffer.push_str(value.as_ref());
19+
} else {
20+
buffer = Some(value.into_owned())
21+
}
1822
}
1923
};
2024

21-
arg_parser
22-
.into_inner()
23-
.for_each(|arg| extend_buffer(&mut buffer, arg.into()));
24-
2525
let output = if let Some(mut buffer) = buffer {
2626
buffer.push('\n');
2727
Cow::Owned(buffer)
@@ -36,13 +36,3 @@ pub fn main() -> Result {
3636
stdout.write_all(output.as_bytes())?;
3737
}
3838
}
39-
40-
#[inline]
41-
fn extend_buffer(buffer: &mut Option<String>, arg: Cow<'_, str>) {
42-
if let Some(buffer) = buffer {
43-
buffer.push(' '); // Manually put the space
44-
buffer.push_str(arg.as_ref());
45-
} else {
46-
*buffer = Some(arg.into_owned())
47-
}
48-
}

0 commit comments

Comments
 (0)