From d0d0d07b9e88992f8beedce33a78918e27b41a6a Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 5 Sep 2016 12:09:23 -0400 Subject: Windows: Handle shebang in external special remote program. --- Git/Hook.hs | 21 ++------------------- 1 file changed, 2 insertions(+), 19 deletions(-) (limited to 'Git') diff --git a/Git/Hook.hs b/Git/Hook.hs index f4424c60e..da999733d 100644 --- a/Git/Hook.hs +++ b/Git/Hook.hs @@ -12,6 +12,7 @@ module Git.Hook where import Common import Git import Utility.Tmp +import Utility.Shell #ifndef mingw32_HOST_OS import Utility.FileMode #endif @@ -75,23 +76,5 @@ hookExists h r = do runHook :: Hook -> Repo -> IO Bool runHook h r = do let f = hookFile h r - (c, ps) <- findcmd f + (c, ps) <- findShellCommand f boolSystem c ps - where -#ifndef mingw32_HOST_OS - findcmd = defcmd -#else - {- Like git for windows, parse the first line of the hook file, - - look for "#!", and dispatch the interpreter on the file. -} - findcmd f = do - l <- headMaybe . lines <$> catchDefaultIO "" (readFile f) - case l of - Just ('#':'!':rest) -> case words rest of - [] -> defcmd f - (c:ps) -> do - let ps' = map Param (ps ++ [f]) - ok <- inPath c - return (if ok then c else takeFileName c, ps') - _ -> defcmd f -#endif - defcmd f = return (f, []) -- cgit v1.2.3