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
11
Types/Availability.hs
Normal file
11
Types/Availability.hs
Normal file
|
@ -0,0 +1,11 @@
|
|||
{- git-annex remote availability
|
||||
-
|
||||
- Copyright 2014 Joey Hess <joey@kitenet.net>
|
||||
-
|
||||
- Licensed under the GNU GPL version 3 or higher.
|
||||
-}
|
||||
|
||||
module Types.Availability where
|
||||
|
||||
data Availability = GloballyAvailable | LocallyAvailable
|
||||
deriving (Eq, Show, Read)
|
|
@ -18,6 +18,7 @@ import qualified Git.Config
|
|||
import Utility.DataUnits
|
||||
import Config.Cost
|
||||
import Types.Distribution
|
||||
import Types.Availability
|
||||
|
||||
{- Main git-annex settings. Each setting corresponds to a git-config key
|
||||
- such as annex.foo -}
|
||||
|
@ -101,6 +102,7 @@ data RemoteGitConfig = RemoteGitConfig
|
|||
, remoteAnnexTrustLevel :: Maybe String
|
||||
, remoteAnnexStartCommand :: Maybe String
|
||||
, remoteAnnexStopCommand :: Maybe String
|
||||
, remoteAnnexAvailability :: Maybe Availability
|
||||
|
||||
{- These settings are specific to particular types of remotes
|
||||
- including special remotes. -}
|
||||
|
@ -130,6 +132,7 @@ extractRemoteGitConfig r remotename = RemoteGitConfig
|
|||
, remoteAnnexTrustLevel = notempty $ getmaybe "trustlevel"
|
||||
, remoteAnnexStartCommand = notempty $ getmaybe "start-command"
|
||||
, remoteAnnexStopCommand = notempty $ getmaybe "stop-command"
|
||||
, remoteAnnexAvailability = getmayberead "availability"
|
||||
|
||||
, remoteAnnexSshOptions = getoptions "ssh-options"
|
||||
, remoteAnnexRsyncOptions = getoptions "rsync-options"
|
||||
|
|
|
@ -2,12 +2,19 @@
|
|||
-
|
||||
- Most things should not need this, using Types instead
|
||||
-
|
||||
- Copyright 2011 Joey Hess <joey@kitenet.net>
|
||||
- Copyright 2011-2014 Joey Hess <joey@kitenet.net>
|
||||
-
|
||||
- Licensed under the GNU GPL version 3 or higher.
|
||||
-}
|
||||
|
||||
module Types.Remote where
|
||||
module Types.Remote
|
||||
( RemoteConfigKey
|
||||
, RemoteConfig
|
||||
, RemoteTypeA(..)
|
||||
, RemoteA(..)
|
||||
, Availability(..)
|
||||
)
|
||||
where
|
||||
|
||||
import Data.Map as M
|
||||
import Data.Ord
|
||||
|
@ -16,6 +23,7 @@ import qualified Git
|
|||
import Types.Key
|
||||
import Types.UUID
|
||||
import Types.GitConfig
|
||||
import Types.Availability
|
||||
import Config.Cost
|
||||
import Utility.Metered
|
||||
import Git.Types
|
||||
|
@ -82,7 +90,7 @@ data RemoteA a = Remote {
|
|||
-- a Remote can be known to be readonly
|
||||
readonly :: Bool,
|
||||
-- a Remote can be globally available. (Ie, "in the cloud".)
|
||||
globallyAvailable :: Bool,
|
||||
availability :: Availability,
|
||||
-- the type of the remote
|
||||
remotetype :: RemoteTypeA a
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue