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.
This commit is contained in:
Joey Hess 2017-08-29 13:51:00 -04:00
parent 8f35c6584d
commit cca2764f91
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
2 changed files with 11 additions and 13 deletions

View file

@ -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