From ea5682e7291b9839778a6c3e75fcbc42515ef6ea Mon Sep 17 00:00:00 2001 From: Justin Wernick Date: Sun, 9 Apr 2023 21:59:16 +0200 Subject: Implement set_description for an existing repo --- src/git.rs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/git.rs b/src/git.rs index 0ef9a42..979e7b9 100644 --- a/src/git.rs +++ b/src/git.rs @@ -170,8 +170,17 @@ pub fn list() -> Result, ShackleError> { Ok(results) } -pub fn set_description(_directory: &PathBuf, _description: &str) -> Result<(), ShackleError> { - todo!() +pub fn set_description(directory: &PathBuf, description: &str) -> Result<(), ShackleError> { + if !is_valid_git_repo_path(&directory)? { + return Err(ShackleError::InvalidDirectory); + } + + let description_path = directory.join("description"); + if description_path.is_file() { + fs::write(description_path, description).map_err(|e| e.into()) + } else { + Err(ShackleError::InvalidDirectory) + } } pub fn upload_pack(upload_pack_args: &GitUploadPackArgs) -> Result<(), ShackleError> { -- cgit v1.2.3