diff options
author | Joey Hess <joey@kitenet.net> | 2012-10-18 15:37:57 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2012-10-18 15:37:57 -0400 |
commit | 2422fc199fb859b502ab61cbc0d64604b93508a9 (patch) | |
tree | c702ef20c0ffd0b14327b704a6a8267424fe72c3 /Assistant/Drop.hs | |
parent | 3e369ace228e984224c417c6f3524f0b4f5900ac (diff) |
check and drop unwanted content from remotes after receiving a transfer
Diffstat (limited to 'Assistant/Drop.hs')
-rw-r--r-- | Assistant/Drop.hs | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/Assistant/Drop.hs b/Assistant/Drop.hs index b3dca3929..dea5934ee 100644 --- a/Assistant/Drop.hs +++ b/Assistant/Drop.hs @@ -8,24 +8,30 @@ module Assistant.Drop where import Assistant.Common +import Assistant.DaemonStatus import Logs.Location import Logs.Trust +import Types.Remote (AssociatedFile) import qualified Remote import qualified Command.Drop import Command import Annex.Wanted import Config -{- Drop from local or remote when allowed by the preferred content and +{- Drop from syncable remotes when allowed by the preferred content and - numcopies settings. -} -handleDrops :: [Remote] -> Bool -> FilePath -> Key -> Annex () -handleDrops rs present f key = do +handleRemoteDrops :: DaemonStatusHandle -> Key -> AssociatedFile -> Annex () +handleRemoteDrops dstatus key (Just f) = do + syncrs <- liftIO $ syncRemotes <$> getDaemonStatus dstatus locs <- loggedLocations key - handleDrops' locs rs present f key + handleDrops locs syncrs False f key +handleRemoteDrops _ _ _ = noop -handleDrops' :: [UUID] -> [Remote] -> Bool -> FilePath -> Key -> Annex () -handleDrops' locs rs present f key - | present = do +{- Drop from local and/or remote when allowed by the preferred content and + - numcopies settings. -} +handleDrops :: [UUID] -> [Remote] -> Bool -> FilePath -> Key -> Annex () +handleDrops locs rs fromhere f key + | fromhere = do n <- getcopies if checkcopies n then go rs =<< dropl n |