diff options
author | Joey Hess <joey@kitenet.net> | 2014-08-02 15:34:09 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2014-08-02 15:34:09 -0400 |
commit | 0ddf8152ce1353bbbcd7c87c3f67063b4aed892b (patch) | |
tree | 766b35bcef4a38f424832ade2321f6d8db079b7a /Remote/Helper | |
parent | d0a8e3d6217f2924b864393d425b6d7582370d07 (diff) |
specialize Preparer a bit, so resourcePrepare can be added
The forall a. in Preparer made resourcePrepare not seem to be usable, so
I specialized a to Bool. Which works for both Preparer Storer and
Preparer Retriever, but wouldn't let the Preparer be used for hasKey
as it currently stands.
Diffstat (limited to 'Remote/Helper')
-rw-r--r-- | Remote/Helper/ChunkedEncryptable.hs | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/Remote/Helper/ChunkedEncryptable.hs b/Remote/Helper/ChunkedEncryptable.hs index 2a844212b..1267f5b59 100644 --- a/Remote/Helper/ChunkedEncryptable.hs +++ b/Remote/Helper/ChunkedEncryptable.hs @@ -14,6 +14,7 @@ module Remote.Helper.ChunkedEncryptable ( simplyPrepare, ContentSource, checkPrepare, + resourcePrepare, fileStorer, byteStorer, fileRetriever, @@ -49,6 +50,11 @@ checkPrepare checker helper k a = ifM (checker k) , a Nothing ) +-- Use to acquire a resource when preparing a helper. +resourcePrepare :: (Key -> (r -> Annex Bool) -> Annex Bool) -> (r -> helper) -> Preparer helper +resourcePrepare withr helper k a = withr k $ \r -> + a (Just (helper r)) + -- A Storer that expects to be provided with a file containing -- the content of the key to store. fileStorer :: (Key -> FilePath -> MeterUpdate -> Annex Bool) -> Storer |