diff options
author | Joey Hess <joey@kitenet.net> | 2014-08-15 17:30:16 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2014-08-15 17:30:40 -0400 |
commit | 022e81407e7d806100a0882c0f23067a88b4900a (patch) | |
tree | b8035dc47239d6b687aa83adef0d45e11ac65969 /Annex/Transfer.hs | |
parent | 52089bbe73d95c5a2c06a3c58c507129335e5580 (diff) | |
parent | e9128138ef1e19a341d7edfda4db2d6b1f8f6b0a (diff) |
Merge branch 'master' into s3-aws
Conflicts:
git-annex.cabal
Diffstat (limited to 'Annex/Transfer.hs')
-rw-r--r-- | Annex/Transfer.hs | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/Annex/Transfer.hs b/Annex/Transfer.hs index ebc8e8b89..5e98a87d9 100644 --- a/Annex/Transfer.hs +++ b/Annex/Transfer.hs @@ -12,6 +12,7 @@ module Annex.Transfer ( upload, download, runTransfer, + alwaysRunTransfer, noRetry, forwardRetry, ) where @@ -46,12 +47,23 @@ download u key f d a _witness = runTransfer (Transfer Download u key) f d a - no transfer information or lock file is used. -} runTransfer :: Transfer -> Maybe FilePath -> RetryDecider -> (MeterUpdate -> Annex Bool) -> Annex Bool -runTransfer t file shouldretry a = do +runTransfer = runTransfer' False + +{- Like runTransfer, but ignores any existing transfer lock file for the + - transfer, allowing re-running a transfer that is already in progress. + - + - Note that this may result in confusing progress meter display in the + - webapp, if multiple processes are writing to the transfer info file. -} +alwaysRunTransfer :: Transfer -> Maybe FilePath -> RetryDecider -> (MeterUpdate -> Annex Bool) -> Annex Bool +alwaysRunTransfer = runTransfer' True + +runTransfer' :: Bool -> Transfer -> Maybe FilePath -> RetryDecider -> (MeterUpdate -> Annex Bool) -> Annex Bool +runTransfer' ignorelock t file shouldretry a = do info <- liftIO $ startTransferInfo file (meter, tfile, metervar) <- mkProgressUpdater t info mode <- annexFileMode (fd, inprogress) <- liftIO $ prep tfile mode info - if inprogress + if inprogress && not ignorelock then do showNote "transfer already in progress" return False |