--copies=N can be used to make git-annex only operate on files with the specified number of copies.
(And --not --copies=N for the inverse.)
This commit is contained in:
parent
1fc3ee2423
commit
9da23dff78
4 changed files with 24 additions and 0 deletions
15
Limit.hs
15
Limit.hs
|
@ -17,6 +17,7 @@ import qualified Utility.Matcher
|
|||
import qualified Remote
|
||||
import qualified Backend
|
||||
import LocationLog
|
||||
import Utility
|
||||
|
||||
type Limit = Utility.Matcher.Token (FilePath -> Annex Bool)
|
||||
|
||||
|
@ -73,3 +74,17 @@ addIn name = do
|
|||
handle u (Just (key, _)) = do
|
||||
us <- keyLocations key
|
||||
return $ u `elem` us
|
||||
|
||||
{- Adds a limit to skip files not believed to have the specified number
|
||||
- of copies. -}
|
||||
addCopies :: String -> Annex ()
|
||||
addCopies num = do
|
||||
case readMaybe num :: Maybe Int of
|
||||
Nothing -> error "bad number for --copies"
|
||||
Just n -> addlimit $ check n
|
||||
where
|
||||
check n f = Backend.lookupFile f >>= handle n
|
||||
handle _ Nothing = return False
|
||||
handle n (Just (key, _)) = do
|
||||
us <- keyLocations key
|
||||
return $ length us >= n
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue