packages feed

libarchive-3.0.2.2: mem/Mem.hs

module Main ( main ) where

import           Codec.Archive
import           Control.Exception    (throw)
import qualified Data.ByteString.Lazy as BSL

forceList :: [a] -> IO ()
forceList = (`seq` mempty) . last

main :: IO ()
main =
    sequence_
        [ readArc
        , readWriteArc
        , readArcBS
        ]

readArc :: IO ()
readArc = forceList =<< throwArchiveM
    (readArchiveFile "test/data/llvm-9.0.0.src.tar")

readArcBS :: IO ()
readArcBS = (forceList . either throw id) . readArchiveBSL =<< BSL.readFile "test/data/llvm-9.0.0.src.tar"

readWriteArc :: IO ()
readWriteArc = forceList . BSL.toChunks =<< throwArchiveM
    (entriesToBSL <$> readArchiveFile "test/data/llvm-9.0.0.src.tar")