add GETAVAILABILITY to external special remote protocol
And some reworking of types, and added an annex-availability git config setting.
This commit is contained in:
parent
47d2ebd374
commit
c20f31a1ad
22 changed files with 99 additions and 26 deletions
|
@ -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. -}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue