rewrite woodpecker-ci to publish to crates.io #8

Merged
kemitix merged 14 commits from woodpecker-ci into main 2024-02-26 10:36:03 +00:00
Showing only changes of commit 9c51c9c719 - Show all commits

View file

@ -39,7 +39,7 @@ pub fn skip(cli: &Cli, writer: &mut impl Write) -> Result<()> {
None => Box::new(BufReader::new(std::io::stdin())),
};
if let Some(line) = &cli.line {
skip_lines_matching(&cli, reader, writer, line)
skip_lines_matching(cli, reader, writer, line)
} else if let Some(ref token) = cli.token {
skip_tokens(cli, reader, writer, token)
} else {
@ -49,14 +49,10 @@ pub fn skip(cli: &Cli, writer: &mut impl Write) -> Result<()> {
// skip a number of lines
fn skip_lines(cli: &Cli, reader: Box<dyn BufRead>, writer: &mut impl Write) -> Result<()> {
let mut counter = 0usize;
for current_line in reader.lines() {
if let Ok(current_line) = current_line {
for (counter, current_line) in reader.lines().map_while(Option::Some).flatten().enumerate() {
if counter >= cli.lines {
writeln!(writer, "{}", current_line)?;
}
counter += 1;
}
}
Ok(())
}
@ -69,8 +65,7 @@ fn skip_lines_matching(
line: &str,
) -> Result<()> {
let mut counter = 0usize;
for current_line in reader.lines() {
if let Ok(current_line) = current_line {
for current_line in reader.lines().map_while(Option::Some).flatten() {
if counter >= cli.lines {
writeln!(writer, "{}", current_line)?;
}
@ -78,7 +73,6 @@ fn skip_lines_matching(
counter += 1;
}
}
}
Ok(())
}
@ -92,12 +86,11 @@ fn skip_tokens(
) -> Result<()> {
let mut counter = 0usize;
for current_line in reader.lines() {
if let Ok(current_line) = current_line {
for current_line in reader.lines().map_while(Option::Some).flatten() {
if counter >= cli.lines {
writeln!(writer, "{}", current_line)?;
}
if current_line.contains(&token) {
if current_line.contains(token) {
if cli.ignore_extras {
counter += 1;
} else {
@ -106,7 +99,6 @@ fn skip_tokens(
}
}
}
}
Ok(())
}
@ -151,10 +143,7 @@ mod tests {
skip(&cli, &mut lines)?;
//then
assert_eq!(
String::from_utf8(lines)?,
vec!["alpha", "gamma\n"].join("\n")
);
assert_eq!(String::from_utf8(lines)?, ["alpha", "gamma\n"].join("\n"));
Ok(())
}
@ -196,7 +185,7 @@ mod tests {
//then
assert_eq!(
String::from_utf8(lines)?,
vec![
[
"Or help one fainting robin",
"Unto his nest again,",
"I shall not live in vain.\n"
@ -224,7 +213,7 @@ mod tests {
//then
assert_eq!(
String::from_utf8(lines)?,
vec![
[
//Lorem ipsum dolor sit amet, -- +2 = 2
//consectetur adipiscing elit,
//sed do eiusmod tempor incididunt -- +1 = 3
@ -257,7 +246,7 @@ mod tests {
//then
assert_eq!(
String::from_utf8(lines)?,
vec![
[
//Lorem ipsum dolor sit amet, -- 1
//consectetur adipiscing elit,
//sed do eiusmod tempor incididunt -- 2