diff options
Diffstat (limited to 'src/main.rs')
| -rw-r--r-- | src/main.rs | 49 |
1 files changed, 40 insertions, 9 deletions
diff --git a/src/main.rs b/src/main.rs index 2d4ee45..bc193e8 100644 --- a/src/main.rs +++ b/src/main.rs @@ -2,6 +2,7 @@ use std::{io, path::PathBuf}; use clap::Parser; use repo2markdown::{ + fenced_md_generator::generate_fenced_markdown, logger::{Logger, Verbosity}, md_generator::generate_markdown_from_paths, renderer::{DEFAULT_MAX_FILE_SIZE, RenderOptions}, @@ -22,6 +23,10 @@ struct Cli { #[arg(long)] name: Option<String>, + /// Wrap the entire output in a markdown code fence. + #[arg(long)] + fenced: bool, + /// Maximum file size, in bytes, to include in the generated markdown. #[arg(long, default_value_t = DEFAULT_MAX_FILE_SIZE, value_name = "BYTES")] max_file_size: u64, @@ -71,15 +76,27 @@ fn main() -> Result<(), Box<dyn std::error::Error>> { let logger = Logger::new(cli.verbosity()); - generate_markdown_from_paths( - stdin.lock(), - stdout.lock(), - cli.render_options(), - &cli.root, - &cli.origin, - cli.name.as_deref(), - logger, - ) + if cli.fenced { + generate_fenced_markdown( + stdin.lock(), + stdout.lock(), + cli.render_options(), + &cli.root, + &cli.origin, + cli.name.as_deref(), + logger, + ) + } else { + generate_markdown_from_paths( + stdin.lock(), + stdout.lock(), + cli.render_options(), + &cli.root, + &cli.origin, + cli.name.as_deref(), + logger, + ) + } } #[cfg(test)] @@ -171,4 +188,18 @@ mod tests { assert!(result.is_err()); } + + #[test] + fn cli_does_not_use_fenced_output_by_default() { + let cli = Cli::try_parse_from(["repo2markdown"]).unwrap(); + + assert!(!cli.fenced); + } + + #[test] + fn cli_accepts_fenced_output_option() { + let cli = Cli::try_parse_from(["repo2markdown", "--fenced"]).unwrap(); + + assert!(cli.fenced); + } } |
