summaryrefslogtreecommitdiff
path: root/Command.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2011-10-29 18:47:53 -0400
committerGravatar Joey Hess <joey@kitenet.net>2011-10-29 18:47:53 -0400
commit61000904d74ffd4745dd6808bcfa88289affc169 (patch)
tree55a4363c1b3dbcd59b9180b395195e7511ad20a7 /Command.hs
parent506282399cc09f652514073993bfc8773cd12aac (diff)
refactor
Diffstat (limited to 'Command.hs')
-rw-r--r--Command.hs10
1 files changed, 8 insertions, 2 deletions
diff --git a/Command.hs b/Command.hs
index 4e312e66d..32f6743f3 100644
--- a/Command.hs
+++ b/Command.hs
@@ -149,22 +149,28 @@ backendPairs a fs = runFilteredGen a snd (Backend.chooseBackends fs)
runFilteredGen :: (b -> Annex (Maybe a)) -> (b -> FilePath) -> Annex [b] -> Annex [Annex (Maybe a)]
runFilteredGen a d fs = do
matcher <- Limit.getMatcher
- liftM (map $ proc matcher) fs
+ runActions (proc matcher) fs
where
proc matcher v = do
let f = d v
ok <- matcher f
if ok then a v else stop
+runActions :: (b -> Annex (Maybe a)) -> Annex [b] -> Annex [Annex (Maybe a)]
+runActions a fs = liftM (map a) fs
+
notAnnexed :: FilePath -> Annex (Maybe a) -> Annex (Maybe a)
notAnnexed file a = maybe a (const $ return Nothing) =<< Backend.lookupFile file
isAnnexed :: FilePath -> ((Key, Backend Annex) -> Annex (Maybe a)) -> Annex (Maybe a)
isAnnexed file a = maybe (return Nothing) a =<< Backend.lookupFile file
+isBareRepo :: Annex Bool
+isBareRepo = Git.repoIsLocalBare <$> gitRepo
+
notBareRepo :: Annex a -> Annex a
notBareRepo a = do
- whenM (Git.repoIsLocalBare <$> gitRepo) $
+ whenM isBareRepo $
error "You cannot run this subcommand in a bare repository."
a