From 469e303febc61ebca3b5a977cf675b9f57111767 Mon Sep 17 00:00:00 2001 From: A Farzat Date: Fri, 5 Jun 2026 05:32:01 +0300 Subject: Add basic CLI handling --- src/main.rs | 38 +++++++++++++++++++++++++++++++++++--- 1 file changed, 35 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/main.rs b/src/main.rs index 64f6112..3e78fe4 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,14 +1,46 @@ use std::{ + env, ffi::OsStr, - io::{Read, Write}, + io::{self, Read, Write}, os::unix::ffi::OsStrExt, path::Path, }; use repo2markdown::{normalizer::Normalizer, renderer::render}; -fn main() { - println!("Hello, world!"); +fn main() -> Result<(), Box> { + let mut args = env::args().skip(1); + + let mut root = None; + let mut origin = None; + let mut name = None; + + while let Some(arg) = args.next() { + match arg.as_str() { + "--root" => root = args.next(), + "--origin" => origin = args.next(), + "--name" => name = args.next(), + _ => { + eprintln!("Unknown argument: {}", arg); + std::process::exit(1); + } + } + } + + let root = root + .as_deref() + .map(Path::new) + .unwrap_or_else(|| Path::new(".")); + + let origin = origin + .as_deref() + .map(Path::new) + .unwrap_or_else(|| Path::new(".")); + + let stdin = io::stdin(); + let stdout = io::stdout(); + + run(stdin.lock(), stdout.lock(), root, origin, name.as_deref()) } const DEFAULT_PROJECT_NAME: &str = "Project Outline"; -- cgit v1.3.1