aboutsummaryrefslogtreecommitdiff
path: root/Command/Move.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2012-08-23 15:22:23 -0400
committerGravatar Joey Hess <joey@kitenet.net>2012-08-23 15:24:15 -0400
commit715a9a2f8e788ffe0bc92bc02919a1825bda49a7 (patch)
tree259e5e683f7d7db3f6bba0192638fe77eeb36d05 /Command/Move.hs
parent487bdf0e24d34135da2e53bbcd2c97d892ed817a (diff)
keep logs of failed transfers, and requeue them when doing a non-full scan
of a remote
Diffstat (limited to 'Command/Move.hs')
-rw-r--r--Command/Move.hs9
1 files changed, 4 insertions, 5 deletions
diff --git a/Command/Move.hs b/Command/Move.hs
index e7c11e80d..7955cecd3 100644
--- a/Command/Move.hs
+++ b/Command/Move.hs
@@ -135,13 +135,12 @@ fromPerform :: Remote -> Bool -> Key -> FilePath -> CommandPerform
fromPerform src move key file = moveLock move key $
ifM (inAnnex key)
( handle move True
- , download (Remote.uuid src) key (Just file) $ do
- showAction $ "from " ++ Remote.name src
- ok <- getViaTmp key $
- Remote.retrieveKeyFile src key (Just file)
- handle move ok
+ , handle move =<< go
)
where
+ go = download (Remote.uuid src) key (Just file) $ do
+ showAction $ "from " ++ Remote.name src
+ getViaTmp key $ Remote.retrieveKeyFile src key (Just file)
handle _ False = stop -- failed
handle False True = next $ return True -- copy complete
handle True True = do -- finish moving