From e5fef4f81679582cd6e55de3c8d4461fe712c997 Mon Sep 17 00:00:00 2001 From: Justin Wernick Date: Sun, 2 Apr 2023 21:04:52 +0200 Subject: Start the basics of listing repos --- src/lib.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/lib.rs') diff --git a/src/lib.rs b/src/lib.rs index e96614f..4685e53 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,6 +1,7 @@ pub mod git; pub mod parser; +use comfy_table::Table; use parser::*; use rustyline::error::ReadlineError; use std::{io, ops::ControlFlow}; @@ -15,6 +16,16 @@ pub fn run_command(user_input: String) -> Result, ShackleErr Ok(ShackleCommand::Exit) => { return Ok(ControlFlow::Break(())); } + Ok(ShackleCommand::List) => { + let mut table = Table::new(); + table.set_header(vec!["path", "description"]); + let listing = git::list()?; + for meta in listing { + table.add_row(vec![meta.path.display().to_string(), meta.description]); + } + + println!("{table}"); + } Ok(ShackleCommand::GitInit(GitInitArgs { repo_name, group })) => { let init_result = git::init(&repo_name, &group)?; println!("Successfully created \"{}\"", init_result.path.display()); -- cgit v1.2.3