git-annex-shell: Runs hooks/annex-content after content is received or dropped.
This commit is contained in:
parent
59e2feeda1
commit
caf97fcffd
4 changed files with 28 additions and 3 deletions
14
Git.hs
14
Git.hs
|
@ -24,12 +24,14 @@ module Git (
|
|||
gitDir,
|
||||
configTrue,
|
||||
attributes,
|
||||
hookPath,
|
||||
assertLocal,
|
||||
) where
|
||||
|
||||
import qualified Data.Map as M
|
||||
import Data.Char
|
||||
import Network.URI (uriPath, uriScheme, unEscapeString)
|
||||
import System.Directory
|
||||
|
||||
import Common
|
||||
import Git.Types
|
||||
|
@ -93,17 +95,25 @@ configBare repo = maybe unknown (fromMaybe False . configTrue) $
|
|||
" is a bare repository; config not read"
|
||||
|
||||
{- Path to a repository's gitattributes file. -}
|
||||
attributes :: Repo -> String
|
||||
attributes :: Repo -> FilePath
|
||||
attributes repo
|
||||
| configBare repo = workTree repo ++ "/info/.gitattributes"
|
||||
| otherwise = workTree repo ++ "/.gitattributes"
|
||||
|
||||
{- Path to a repository's .git directory. -}
|
||||
gitDir :: Repo -> String
|
||||
gitDir :: Repo -> FilePath
|
||||
gitDir repo
|
||||
| configBare repo = workTree repo
|
||||
| otherwise = workTree repo </> ".git"
|
||||
|
||||
{- Path to a given hook script in a repository, only if the hook exists
|
||||
- and is executable. -}
|
||||
hookPath :: String -> Repo -> IO (Maybe FilePath)
|
||||
hookPath script repo = do
|
||||
let hook = gitDir repo </> "hooks" </> script
|
||||
ok <- doesFileExist hook
|
||||
return $ if ok then Just hook else Nothing
|
||||
|
||||
{- Path to a repository's --work-tree, that is, its top.
|
||||
-
|
||||
- Note that for URL repositories, this is the path on the remote host. -}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue