RemoteConfig type

This commit is contained in:
Joey Hess 2011-04-15 15:09:36 -04:00
parent f7018e47e4
commit 1e84dab4c8
8 changed files with 33 additions and 30 deletions

View file

@ -39,7 +39,7 @@ remote = RemoteType {
setup = bupSetup
}
gen :: Git.Repo -> UUID -> Maybe (M.Map String String) -> Annex (Remote Annex)
gen :: Git.Repo -> UUID -> Maybe RemoteConfig -> Annex (Remote Annex)
gen r u c = do
buprepo <- getConfig r "buprepo" (error "missing buprepo")
cst <- remoteCost r (if bupLocal buprepo then semiCheapRemoteCost else expensiveRemoteCost)
@ -60,7 +60,7 @@ gen r u c = do
config = c
}
bupSetup :: UUID -> M.Map String String -> Annex (M.Map String String)
bupSetup :: UUID -> RemoteConfig -> Annex RemoteConfig
bupSetup u c = do
-- verify configuration is sane
let buprepo = case M.lookup "buprepo" c of

View file

@ -35,7 +35,7 @@ remote = RemoteType {
setup = directorySetup
}
gen :: Git.Repo -> UUID -> Maybe (M.Map String String) -> Annex (Remote Annex)
gen :: Git.Repo -> UUID -> Maybe RemoteConfig -> Annex (Remote Annex)
gen r u _ = do
dir <- getConfig r "directory" (error "missing directory")
cst <- remoteCost r cheapRemoteCost
@ -51,7 +51,7 @@ gen r u _ = do
config = Nothing
}
directorySetup :: UUID -> M.Map String String -> Annex (M.Map String String)
directorySetup :: UUID -> RemoteConfig -> Annex RemoteConfig
directorySetup u c = do
-- verify configuration is sane
let dir = case M.lookup "directory" c of

View file

@ -40,7 +40,7 @@ list = do
g <- Annex.gitRepo
return $ Git.remotes g
gen :: Git.Repo -> UUID -> Maybe (M.Map String String) -> Annex (Remote Annex)
gen :: Git.Repo -> UUID -> Maybe RemoteConfig -> Annex (Remote Annex)
gen r u _ = do
{- It's assumed to be cheap to read the config of non-URL remotes,
- so this is done each time git-annex is run. Conversely,

View file

@ -37,7 +37,7 @@ remote = RemoteType {
setup = s3Setup
}
gen :: Git.Repo -> UUID -> Maybe (M.Map String String) -> Annex (Remote Annex)
gen :: Git.Repo -> UUID -> Maybe RemoteConfig -> Annex (Remote Annex)
gen r u c = do
cst <- remoteCost r expensiveRemoteCost
return $ this cst
@ -54,14 +54,14 @@ gen r u c = do
config = c
}
s3ConnectionRequired :: M.Map String String -> Annex AWSConnection
s3ConnectionRequired :: RemoteConfig -> Annex AWSConnection
s3ConnectionRequired c = do
conn <- s3Connection c
case conn of
Nothing -> error "Cannot connect to S3"
Just conn' -> return conn'
s3Connection :: M.Map String String -> Annex (Maybe AWSConnection)
s3Connection :: RemoteConfig -> Annex (Maybe AWSConnection)
s3Connection c = do
ak <- getEnvKey "AWS_ACCESS_KEY_ID"
sk <- getEnvKey "AWS_SECRET_ACCESS_KEY"
@ -78,7 +78,7 @@ s3Connection c = do
_ -> error $ "bad S3 port value: " ++ s
getEnvKey s = liftIO $ catch (getEnv s) (const $ return "")
s3Setup :: UUID -> M.Map String String -> Annex (M.Map String String)
s3Setup :: UUID -> RemoteConfig -> Annex RemoteConfig
s3Setup u c = do
-- verify configuration is sane
case M.lookup "encryption" c of

View file

@ -13,6 +13,7 @@ import Data.String.Utils
import Control.Monad.State (liftIO)
import Types
import RemoteClass
import qualified GitRepo as Git
import qualified Annex
import UUID
@ -32,7 +33,7 @@ findSpecialRemotes s = do
match k _ = startswith "remote." k && endswith (".annex-"++s) k
{- Sets up configuration for a special remote in .git/config. -}
gitConfigSpecialRemote :: UUID -> M.Map String String -> String -> String -> Annex ()
gitConfigSpecialRemote :: UUID -> RemoteConfig -> String -> String -> Annex ()
gitConfigSpecialRemote u c k v = do
g <- Annex.gitRepo
liftIO $ do