summaryrefslogtreecommitdiff
path: root/Remote/Helper/Git.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2014-01-13 14:41:10 -0400
committerGravatar Joey Hess <joey@kitenet.net>2014-01-13 14:41:10 -0400
commitfa7934c035ff09b46d646353683c6d9745f0c94d (patch)
treeccdbbe618762679e9bc2932e8d92bbee86067fd9 /Remote/Helper/Git.hs
parent2d9784fae4ea1830865bc77de1a1c4c1b4ce3714 (diff)
add GETAVAILABILITY to external special remote protocol
And some reworking of types, and added an annex-availability git config setting.
Diffstat (limited to 'Remote/Helper/Git.hs')
-rw-r--r--Remote/Helper/Git.hs16
1 files changed, 9 insertions, 7 deletions
diff --git a/Remote/Helper/Git.hs b/Remote/Helper/Git.hs
index 7c24ff2e7..d76cb2ee7 100644
--- a/Remote/Helper/Git.hs
+++ b/Remote/Helper/Git.hs
@@ -1,6 +1,6 @@
{- Utilities for git remotes.
-
- - Copyright 2011-2012 Joey Hess <joey@kitenet.net>
+ - Copyright 2011-2014 Joey Hess <joey@kitenet.net>
-
- Licensed under the GNU GPL version 3 or higher.
-}
@@ -9,18 +9,20 @@ module Remote.Helper.Git where
import Common.Annex
import qualified Git
+import Types.Availability
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
+localpathCalc r
+ | availabilityCalc r == GloballyAvailable = Nothing
+ | otherwise = Just $ Git.repoPath r
-globallyAvailableCalc :: Git.Repo -> Bool
-globallyAvailableCalc r = not $
- Git.repoIsLocal r || Git.repoIsLocalUnknown r
+availabilityCalc :: Git.Repo -> Availability
+availabilityCalc r
+ | (Git.repoIsLocal r || Git.repoIsLocalUnknown r) = LocallyAvailable
+ | otherwise = GloballyAvailable
{- Avoids performing an action on a local repository that's not usable.
- Does not check that the repository is still available on disk. -}