From b541b141e66d5cf0ba4b190eda6422126951af6e Mon Sep 17 00:00:00 2001 From: Justin Wernick Date: Thu, 16 Mar 2023 22:51:00 +0200 Subject: Git push --- src/main.rs | 12 ++++++++++++ src/parser.rs | 8 ++++++++ 2 files changed, 20 insertions(+) (limited to 'src') diff --git a/src/main.rs b/src/main.rs index 6f8c1d9..50f5127 100644 --- a/src/main.rs +++ b/src/main.rs @@ -76,6 +76,18 @@ fn run_command(user_input: String) -> Result, ShackleError> // TODO: This should definitely be part of the arg parsing! command.arg(&upload_pack_args.directory.trim_matches('\'')); + command.spawn()?.wait()?; + } + 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"); + } + + // TODO: This should definitely be part of the arg parsing! + command.arg(&receive_pack_args.directory.trim_matches('\'')); + command.spawn()?.wait()?; } } diff --git a/src/parser.rs b/src/parser.rs index ef7d5f8..59dc7d8 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -9,6 +9,7 @@ pub enum ShackleCommand { Exit, GitInit(GitInitArgs), GitUploadPack(GitUploadPackArgs), + GitReceivePack(GitReceivePackArgs), } #[derive(Subcommand, Clone, Debug, PartialEq, Eq)] @@ -36,6 +37,13 @@ pub struct GitUploadPackArgs { pub directory: String, } +#[derive(Parser, Clone, Debug, PartialEq, Eq)] +pub struct GitReceivePackArgs { + #[arg(long)] + pub http_backend_info_refs: bool, + pub directory: String, +} + impl FromStr for ShackleCommand { type Err = clap::error::Error; -- cgit v1.2.3