summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bin/r2md-fence.rs21
-rw-r--r--src/fence_wrapper.rs20
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");
+ }
}