diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/bin/r2md-fence.rs | 21 | ||||
| -rw-r--r-- | src/fence_wrapper.rs | 20 |
2 files changed, 41 insertions, 0 deletions
diff --git a/src/bin/r2md-fence.rs b/src/bin/r2md-fence.rs new file mode 100644 index 0000000..bfaf8d5 --- /dev/null +++ b/src/bin/r2md-fence.rs @@ -0,0 +1,21 @@ +use std::io; + +use clap::Parser; +use repo2markdown::fence_wrapper::wrap_in_fence; + +#[derive(Debug, Parser)] +#[command(version, about, long_about = None)] +struct Cli { + /// Language tag to append to the opening markdown fence. + #[arg(long, short, default_value = "")] + language: String, +} + +fn main() -> io::Result<()> { + let cli = Cli::parse(); + + let stdin = io::stdin(); + let stdout = io::stdout(); + + wrap_in_fence(stdin.lock(), stdout.lock(), &cli.language) +} diff --git a/src/fence_wrapper.rs b/src/fence_wrapper.rs index a218088..fc8f1c2 100644 --- a/src/fence_wrapper.rs +++ b/src/fence_wrapper.rs @@ -66,4 +66,24 @@ mod tests { assert_eq!(String::from_utf8(output).unwrap(), "```text\n\n```\n"); } + + #[test] + fn supports_empty_language() { + let input = Cursor::new("hello\n"); + let mut output = Vec::new(); + + wrap_in_fence(input, &mut output, "").unwrap(); + + assert_eq!(String::from_utf8(output).unwrap(), "```\nhello\n\n```\n"); + } + + #[test] + fn wraps_empty_input_with_empty_language() { + let input = Cursor::new(""); + let mut output = Vec::new(); + + wrap_in_fence(input, &mut output, "").unwrap(); + + assert_eq!(String::from_utf8(output).unwrap(), "```\n\n```\n"); + } } |
