cabal-cache-0.2.0.2: src/HaskellWorks/Ci/Assist/Tar.hs
module HaskellWorks.Ci.Assist.Tar
where
import Codec.Archive.Tar
import Codec.Archive.Tar.Entry
import qualified Data.ByteString.Lazy as LBS
updateEntryWith :: (FilePath -> Bool)
-> (LBS.ByteString -> LBS.ByteString)
-> Entry
-> Entry
updateEntryWith pred transform entry =
if pred (entryPath entry)
then case entryContent entry of
NormalFile bs size ->
let bs' = transform bs
in entry { entryContent = NormalFile bs' (LBS.length bs') }
_ -> entry
else entry
mapEntriesWith :: (FilePath -> Bool)
-> (LBS.ByteString -> LBS.ByteString)
-> Entries e
-> Entries e
mapEntriesWith pred transform =
mapEntriesNoFail (updateEntryWith pred transform)