summaryrefslogtreecommitdiff
path: root/Remote
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2017-08-29 13:51:00 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2017-08-29 13:57:42 -0400
commitb0836c1a8ce6edb0604648c1fcf4396f43ebd998 (patch)
treef46c3b981ae1493d0d2758757b1231fe2fa01133 /Remote
parent119f951d4b91fef9cad0d1ce76d3a430510bfdc1 (diff)
provide file with content to export
Rather than providing the key to export, provide the file. When exporting a treeish that contains files that are not annexed, this will let the content of those files also be exported. There's still a Key in the interface; it will be used by the external special remote protocol. A SHA1 key can be used when exporting non-annexed files. This commit was sponsored by Brock Spratlen on Patreon.
Diffstat (limited to 'Remote')
-rw-r--r--Remote/Directory.hs12
1 files changed, 5 insertions, 7 deletions
diff --git a/Remote/Directory.hs b/Remote/Directory.hs
index a371a1951..342b5bc57 100644
--- a/Remote/Directory.hs
+++ b/Remote/Directory.hs
@@ -233,15 +233,13 @@ checkPresentGeneric d ps = liftIO $
exportPath :: FilePath -> ExportLocation -> FilePath
exportPath d (ExportLocation loc) = d </> loc
-storeExportDirectory :: FilePath -> Key -> ExportLocation -> MeterUpdate -> Annex Bool
-storeExportDirectory d k loc p = sendAnnex k rollback send
+storeExportDirectory :: FilePath -> FilePath -> Key -> ExportLocation -> MeterUpdate -> Annex Bool
+storeExportDirectory d src _k loc p = liftIO $ catchBoolIO $ do
+ createDirectoryIfMissing True dest
+ withMeteredFile src p (L.writeFile dest)
+ return True
where
dest = exportPath d loc
- send src = liftIO $ catchBoolIO $ do
- createDirectoryIfMissing True dest
- withMeteredFile src p (L.writeFile dest)
- return True
- rollback = liftIO $ nukeFile dest
retrieveExportDirectory :: FilePath -> Key -> ExportLocation -> FilePath -> MeterUpdate -> Annex (Bool, Verification)
retrieveExportDirectory d _k loc dest p = unVerified $ liftIO $ catchBoolIO $ do