{-# LINE 1 "src/Archive/FFI.cpphs" #-}
# 1 "src/Archive/FFI.cpphs"
# 1 "<built-in>"
# 1 "<command-line>"
# 12 "<command-line>"
# 1 "/usr/include/stdc-predef.h" 1 3 4
# 17 "/usr/include/stdc-predef.h" 3 4
# 12 "<command-line>" 2
# 1 "/home/vanessa/programming/haskell/done/archive-backpack/dist-newstyle/build/x86_64-linux/ghc-8.10.2/archive-libarchive-1.0.0.1/build/autogen/cabal_macros.h" 1
# 13 "/home/vanessa/programming/haskell/done/archive-backpack/dist-newstyle/build/x86_64-linux/ghc-8.10.2/archive-libarchive-1.0.0.1/build/autogen/cabal_macros.h"
# 24 "/home/vanessa/programming/haskell/done/archive-backpack/dist-newstyle/build/x86_64-linux/ghc-8.10.2/archive-libarchive-1.0.0.1/build/autogen/cabal_macros.h"
# 35 "/home/vanessa/programming/haskell/done/archive-backpack/dist-newstyle/build/x86_64-linux/ghc-8.10.2/archive-libarchive-1.0.0.1/build/autogen/cabal_macros.h"
# 46 "/home/vanessa/programming/haskell/done/archive-backpack/dist-newstyle/build/x86_64-linux/ghc-8.10.2/archive-libarchive-1.0.0.1/build/autogen/cabal_macros.h"
# 57 "/home/vanessa/programming/haskell/done/archive-backpack/dist-newstyle/build/x86_64-linux/ghc-8.10.2/archive-libarchive-1.0.0.1/build/autogen/cabal_macros.h"
# 68 "/home/vanessa/programming/haskell/done/archive-backpack/dist-newstyle/build/x86_64-linux/ghc-8.10.2/archive-libarchive-1.0.0.1/build/autogen/cabal_macros.h"
# 79 "/home/vanessa/programming/haskell/done/archive-backpack/dist-newstyle/build/x86_64-linux/ghc-8.10.2/archive-libarchive-1.0.0.1/build/autogen/cabal_macros.h"
# 90 "/home/vanessa/programming/haskell/done/archive-backpack/dist-newstyle/build/x86_64-linux/ghc-8.10.2/archive-libarchive-1.0.0.1/build/autogen/cabal_macros.h"
# 101 "/home/vanessa/programming/haskell/done/archive-backpack/dist-newstyle/build/x86_64-linux/ghc-8.10.2/archive-libarchive-1.0.0.1/build/autogen/cabal_macros.h"
# 112 "/home/vanessa/programming/haskell/done/archive-backpack/dist-newstyle/build/x86_64-linux/ghc-8.10.2/archive-libarchive-1.0.0.1/build/autogen/cabal_macros.h"
# 123 "/home/vanessa/programming/haskell/done/archive-backpack/dist-newstyle/build/x86_64-linux/ghc-8.10.2/archive-libarchive-1.0.0.1/build/autogen/cabal_macros.h"
# 134 "/home/vanessa/programming/haskell/done/archive-backpack/dist-newstyle/build/x86_64-linux/ghc-8.10.2/archive-libarchive-1.0.0.1/build/autogen/cabal_macros.h"
# 145 "/home/vanessa/programming/haskell/done/archive-backpack/dist-newstyle/build/x86_64-linux/ghc-8.10.2/archive-libarchive-1.0.0.1/build/autogen/cabal_macros.h"
# 156 "/home/vanessa/programming/haskell/done/archive-backpack/dist-newstyle/build/x86_64-linux/ghc-8.10.2/archive-libarchive-1.0.0.1/build/autogen/cabal_macros.h"
# 167 "/home/vanessa/programming/haskell/done/archive-backpack/dist-newstyle/build/x86_64-linux/ghc-8.10.2/archive-libarchive-1.0.0.1/build/autogen/cabal_macros.h"
# 178 "/home/vanessa/programming/haskell/done/archive-backpack/dist-newstyle/build/x86_64-linux/ghc-8.10.2/archive-libarchive-1.0.0.1/build/autogen/cabal_macros.h"
# 189 "/home/vanessa/programming/haskell/done/archive-backpack/dist-newstyle/build/x86_64-linux/ghc-8.10.2/archive-libarchive-1.0.0.1/build/autogen/cabal_macros.h"
# 200 "/home/vanessa/programming/haskell/done/archive-backpack/dist-newstyle/build/x86_64-linux/ghc-8.10.2/archive-libarchive-1.0.0.1/build/autogen/cabal_macros.h"
# 12 "<command-line>" 2
# 1 "/home/vanessa/.ghcup/ghc/8.10.2/lib/ghc-8.10.2/include/ghcversion.h" 1
# 12 "<command-line>" 2
# 1 "src/Archive/FFI.cpphs"
module Archive.FFI ( Entry
, Error
, FP
, readArchiveBytes
, unpackToDirRaw
, writeArchiveBytes
, packFilesRaw
, versionInfo
, toFP
) where
import qualified Codec.Archive as FFI
import Codec.Archive.Foreign.Archive (archiveVersionString)
import Control.Composition ((.*))
import qualified Data.ByteString as BS
import qualified Data.ByteString.Lazy as BSL
import qualified Data.Version as V
import qualified Paths_archive_libarchive as P
type Entry = FFI.Entry FilePath BS.ByteString
type Error = FFI.ArchiveResult
type FP = FilePath
toFP :: FilePath -> FP
toFP = id
writeArchiveBytes :: [Entry] -> BSL.ByteString
writeArchiveBytes = FFI.entriesToBSL
readArchiveBytes :: BSL.ByteString -> Either Error [Entry]
readArchiveBytes = FFI.readArchiveBSL
unpackToDirRaw :: FP -> BSL.ByteString -> IO ()
unpackToDirRaw = FFI.throwArchiveM .* FFI.unpackToDirLazy
packFilesRaw :: [FP] -> IO BSL.ByteString
packFilesRaw = FFI.packFiles
versionInfo :: String
versionInfo =
"libarchive-hs: " ++ "3.0.0.0" ++ "\n"
++ archiveVersionString ++ "\n"
++ "archive-libarchive: " ++ V.showVersion P.version