From ae4b23d95dc8792231c1e8212978be8305ee1964 Mon Sep 17 00:00:00 2001 From: Justin Wernick Date: Mon, 20 Mar 2023 17:06:10 +0200 Subject: Refactor git functions into the git module --- src/main.rs | 34 +++------------------------------- 1 file changed, 3 insertions(+), 31 deletions(-) (limited to 'src/main.rs') diff --git a/src/main.rs b/src/main.rs index 56cd729..4b62aa1 100644 --- a/src/main.rs +++ b/src/main.rs @@ -4,7 +4,7 @@ mod parser; use clap::Parser; use parser::*; use rustyline::{error::ReadlineError, DefaultEditor}; -use std::{io, ops::ControlFlow, process::Command}; +use std::{io, ops::ControlFlow}; use thiserror::Error; /// Shackle Shell - A replacement for git-shell with repo management commands built in. @@ -44,38 +44,10 @@ fn run_command(user_input: String) -> Result, ShackleError> println!("Successfully created \"{}.git\"", repo_name); } Ok(ShackleCommand::GitUploadPack(upload_pack_args)) => { - let mut command = Command::new("git-upload-pack"); - - if upload_pack_args.strict { - command.arg("strict"); - } - if upload_pack_args.no_strict { - command.arg("no-strict"); - } - if let Some(timeout) = upload_pack_args.timeout { - command.args(["timeout", &timeout.to_string()]); - } - if upload_pack_args.stateless_rpc { - command.arg("stateless-rpc"); - } - if upload_pack_args.advertise_refs { - command.arg("advertise-refs"); - } - - command.arg(&upload_pack_args.directory); - - command.spawn()?.wait()?; + git::upload_pack(&upload_pack_args)?; } Ok(ShackleCommand::GitReceivePack(receive_pack_args)) => { - let mut command = Command::new("git-receive-pack"); - - if receive_pack_args.http_backend_info_refs { - command.arg("--http-backend-info-refs"); - } - - command.arg(&receive_pack_args.directory); - - command.spawn()?.wait()?; + git::receive_pack(&receive_pack_args)?; } } Ok(ControlFlow::Continue(())) -- cgit v1.2.3