From 2e362626cb85a7e1653b83cc0d7929688201867c Mon Sep 17 00:00:00 2001 From: Stephan Dilly Date: Sun, 1 Nov 2020 01:30:09 +0100 Subject: [PATCH] fix hook panicking (#393) --- asyncgit/src/sync/hooks.rs | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/asyncgit/src/sync/hooks.rs b/asyncgit/src/sync/hooks.rs index 021fd2573a..d4569f5b8f 100644 --- a/asyncgit/src/sync/hooks.rs +++ b/asyncgit/src/sync/hooks.rs @@ -34,7 +34,7 @@ pub fn hooks_commit_msg( work_dir.as_str(), HOOK_COMMIT_MSG, &[HOOK_COMMIT_MSG_TEMP_FILE], - ); + )?; // load possibly altered msg msg.clear(); @@ -54,9 +54,7 @@ pub fn hooks_pre_commit(repo_path: &str) -> Result { let work_dir = work_dir_as_string(repo_path)?; if hook_runable(work_dir.as_str(), HOOK_PRE_COMMIT) { - let res = run_hook(work_dir.as_str(), HOOK_PRE_COMMIT, &[]); - - Ok(res) + Ok(run_hook(work_dir.as_str(), HOOK_PRE_COMMIT, &[])?) } else { Ok(HookResult::Ok) } @@ -69,7 +67,7 @@ pub fn hooks_post_commit(repo_path: &str) -> Result { let work_dir_str = work_dir.as_str(); if hook_runable(work_dir_str, HOOK_POST_COMMIT) { - Ok(run_hook(work_dir_str, HOOK_POST_COMMIT, &[])) + Ok(run_hook(work_dir_str, HOOK_POST_COMMIT, &[])?) } else { Ok(HookResult::Ok) } @@ -109,7 +107,7 @@ fn run_hook( path: &str, hook_script: &str, args: &[&str], -) -> HookResult { +) -> Result { let arg_str = format!("{} {}", hook_script, args.join(" ")); let bash_args = vec!["-c".to_string(), arg_str]; @@ -123,18 +121,16 @@ fn run_hook( "DUMMY_ENV_TO_FIX_WINDOWS_CMD_RUNS", "FixPathHandlingOnWindows", ) - .output(); - - let output = output.expect("general hook error"); + .output()?; if output.status.success() { - HookResult::Ok + Ok(HookResult::Ok) } else { let err = String::from_utf8_lossy(&output.stderr); let out = String::from_utf8_lossy(&output.stdout); let formatted = format!("{}{}", out, err); - HookResult::NotOk(formatted) + Ok(HookResult::NotOk(formatted)) } }