Fix transferring files to special remotes in direct mode.

This commit is contained in:
Joey Hess 2013-01-06 14:29:01 -04:00
parent e457be7631
commit 909f67443f
10 changed files with 33 additions and 38 deletions

View file

@ -30,6 +30,7 @@ import Remote.Helper.Chunked
import Crypto
import Creds
import Meters
import Annex.Content
type DavUrl = String
type DavUser = B8.ByteString
@ -82,16 +83,14 @@ webdavSetup u c = do
store :: Remote -> Key -> AssociatedFile -> MeterUpdate -> Annex Bool
store r k _f p = metered (Just p) k $ \meterupdate ->
davAction r False $ \(baseurl, user, pass) -> do
f <- inRepo $ gitAnnexLocation k
liftIO $ withMeteredFile f meterupdate $
davAction r False $ \(baseurl, user, pass) -> sendAnnex k $ \src ->
liftIO $ withMeteredFile src meterupdate $
storeHelper r k baseurl user pass
storeEncrypted :: Remote -> (Cipher, Key) -> Key -> MeterUpdate -> Annex Bool
storeEncrypted r (cipher, enck) k p = metered (Just p) k $ \meterupdate ->
davAction r False $ \(baseurl, user, pass) -> do
f <- inRepo $ gitAnnexLocation k
liftIO $ encrypt cipher (streamMeteredFile f meterupdate) $
davAction r False $ \(baseurl, user, pass) -> sendAnnex k $ \src ->
liftIO $ encrypt cipher (streamMeteredFile src meterupdate) $
readBytes $ storeHelper r enck baseurl user pass
storeHelper :: Remote -> Key -> DavUrl -> DavUser -> DavPass -> L.ByteString -> IO Bool