summaryrefslogtreecommitdiff
path: root/Crypto.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2012-11-18 20:06:28 -0400
committerGravatar Joey Hess <joey@kitenet.net>2012-11-18 20:30:05 -0400
commit6aa68125b6d476f0ad9372a0f0fbaa5c118e7096 (patch)
treebaadc0f86773f86903239e242559df8553bd41fa /Crypto.hs
parentac71b499ac6d53408cfce19a1ddd00bfa4b2645f (diff)
upload progress bars for webdav!
Diffstat (limited to 'Crypto.hs')
-rw-r--r--Crypto.hs8
1 files changed, 8 insertions, 0 deletions
diff --git a/Crypto.hs b/Crypto.hs
index fe6c6d5cb..99b17ce02 100644
--- a/Crypto.hs
+++ b/Crypto.hs
@@ -19,6 +19,7 @@ module Crypto (
decryptCipher,
encryptKey,
feedFile,
+ feedFileMetered,
feedBytes,
readBytes,
encrypt,
@@ -36,6 +37,8 @@ import Common.Annex
import qualified Utility.Gpg as Gpg
import Types.Key
import Types.Crypto
+import Types.Remote
+import Utility.Observed
{- The first half of a Cipher is used for HMAC; the remainder
- is used as the GPG symmetric encryption passphrase.
@@ -122,6 +125,11 @@ type Reader a = Handle -> IO a
feedFile :: FilePath -> Feeder
feedFile f h = L.hPut h =<< L.readFile f
+feedFileMetered :: FilePath -> MeterUpdate -> Feeder
+feedFileMetered f m to = withBinaryFile f ReadMode $ \h -> do
+ b <- hGetContentsObserved h $ m . toInteger
+ L.hPut to b
+
feedBytes :: L.ByteString -> Feeder
feedBytes = flip L.hPut