diff options
Diffstat (limited to 'Remote/Helper/Git.hs')
-rw-r--r-- | Remote/Helper/Git.hs | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/Remote/Helper/Git.hs b/Remote/Helper/Git.hs new file mode 100644 index 000000000..7c24ff2e7 --- /dev/null +++ b/Remote/Helper/Git.hs @@ -0,0 +1,30 @@ +{- Utilities for git remotes. + - + - Copyright 2011-2012 Joey Hess <joey@kitenet.net> + - + - Licensed under the GNU GPL version 3 or higher. + -} + +module Remote.Helper.Git where + +import Common.Annex +import qualified Git + +repoCheap :: Git.Repo -> Bool +repoCheap = not . Git.repoIsUrl + +localpathCalc :: Git.Repo -> Maybe FilePath +localpathCalc r = if globallyAvailableCalc r + then Nothing + else Just $ Git.repoPath r + +globallyAvailableCalc :: Git.Repo -> Bool +globallyAvailableCalc r = not $ + Git.repoIsLocal r || Git.repoIsLocalUnknown r + +{- Avoids performing an action on a local repository that's not usable. + - Does not check that the repository is still available on disk. -} +guardUsable :: Git.Repo -> a -> Annex a -> Annex a +guardUsable r onerr a + | Git.repoIsLocalUnknown r = return onerr + | otherwise = a |