diff options
author | Joey Hess <joey@kitenet.net> | 2013-04-11 17:15:45 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2013-04-11 17:32:31 -0400 |
commit | 67524c3a41a2c0b5e8c34bcbfde737ca50fc191b (patch) | |
tree | 2d6e8c0fcf36efe7274c9bc1f83c85635412be59 /Remote/Git.hs | |
parent | 90f10c58ba491a17d1b59e91d8c730f80cd25bce (diff) |
connect existing meters to the transfer log for downloads
Most remotes have meters in their implementations of retrieveKeyFile
already. Simply hooking these up to the transfer log makes that information
available. Easy peasy.
This is particularly valuable information for encrypted remotes, which
otherwise bypass the assistant's polling of temp files, and so don't have
good progress bars yet.
Still some work to do here (see progressbars.mdwn changes), but this
is entirely an improvement from the lack of progress bars for encrypted
downloads.
Diffstat (limited to 'Remote/Git.hs')
-rw-r--r-- | Remote/Git.hs | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/Remote/Git.hs b/Remote/Git.hs index eecc9cf2a..4110c1491 100644 --- a/Remote/Git.hs +++ b/Remote/Git.hs @@ -271,8 +271,10 @@ dropKey r key [] {- Tries to copy a key's content from a remote's annex to a file. -} -copyFromRemote :: Remote -> Key -> AssociatedFile -> FilePath -> Annex Bool -copyFromRemote r key file dest +copyFromRemote :: Remote -> Key -> AssociatedFile -> FilePath -> MeterUpdate -> Annex Bool +copyFromRemote r key file dest _p = copyFromRemote' r key file dest +copyFromRemote' :: Remote -> Key -> AssociatedFile -> FilePath -> Annex Bool +copyFromRemote' r key file dest | not $ Git.repoIsUrl (repo r) = guardUsable (repo r) False $ do let params = rsyncParams r u <- getUUID @@ -338,7 +340,7 @@ copyFromRemoteCheap r key file liftIO $ catchBoolIO $ createSymbolicLink loc file >> return True | Git.repoIsSsh (repo r) = ifM (Annex.Content.preseedTmp key file) - ( copyFromRemote r key Nothing file + ( copyFromRemote' r key Nothing file , return False ) | otherwise = return False @@ -367,7 +369,7 @@ copyToRemote r key file p ( return True , do ensureInitialized - download u key file noRetry $ + download u key file noRetry $ const $ Annex.Content.saveState True `after` Annex.Content.getViaTmpChecked (liftIO checksuccessio) key (\d -> rsyncOrCopyFile params object d p) |