summaryrefslogtreecommitdiff
path: root/Backend.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Backend.hs')
-rw-r--r--Backend.hs21
1 files changed, 8 insertions, 13 deletions
diff --git a/Backend.hs b/Backend.hs
index e351bb3b2..50c89ecc5 100644
--- a/Backend.hs
+++ b/Backend.hs
@@ -6,12 +6,11 @@
-}
module Backend (
- BackendFile,
list,
orderedList,
genKey,
lookupFile,
- chooseBackends,
+ chooseBackend,
lookupBackendName,
maybeLookupBackendName
) where
@@ -22,6 +21,7 @@ import Common.Annex
import qualified Git.Config
import qualified Git.CheckAttr
import qualified Annex
+import Annex.CheckAttr
import Types.Key
import qualified Types.Backend as B
@@ -93,20 +93,15 @@ lookupFile file = do
bname ++ ")"
return Nothing
-type BackendFile = (Maybe Backend, FilePath)
-
-{- Looks up the backends that should be used for each file in a list.
+{- Looks up the backend that should be used for a file.
- That can be configured on a per-file basis in the gitattributes file.
-}
-chooseBackends :: [FilePath] -> Annex [BackendFile]
-chooseBackends fs = Annex.getState Annex.forcebackend >>= go
+chooseBackend :: FilePath -> Annex (Maybe Backend)
+chooseBackend f = Annex.getState Annex.forcebackend >>= go
where
- go Nothing = do
- pairs <- inRepo $ Git.CheckAttr.lookup "annex.backend" fs
- return $ map (\(f,b) -> (maybeLookupBackendName b, f)) pairs
- go (Just _) = do
- l <- orderedList
- return $ map (\f -> (Just $ Prelude.head l, f)) fs
+ go Nothing = maybeLookupBackendName <$>
+ checkAttr "annex.backend" f
+ go (Just _) = Just . Prelude.head <$> orderedList
{- Looks up a backend by name. May fail if unknown. -}
lookupBackendName :: String -> Backend