tar-conduit 0.3.2 → 0.3.2.1
raw patch · 4 files changed
+27/−5 lines, 4 files
Files
- ChangeLog.md +5/−0
- src/Data/Conduit/Tar/Unix.hs +16/−2
- tar-conduit.cabal +5/−2
- tests/Spec.hs +1/−1
ChangeLog.md view
@@ -1,4 +1,9 @@+## 0.3.2.1 - 2023-06-25++* `unix-2.8` compatibility [#32](https://github.com/snoyberg/tar-conduit/pull/32)+ ## 0.3.2 - 2019-01-14+ * Create a prefix directory whenever a directory type entry is missing from the tarball itself. Fixes [#26](https://github.com/snoyberg/tar-conduit/issues/26). ## 0.3.1 - 2018-11-19
src/Data/Conduit/Tar/Unix.hs view
@@ -19,6 +19,9 @@ import qualified System.Posix.Files as Posix import qualified System.Posix.User as Posix import qualified System.FilePath.Posix as Posix+#if MIN_VERSION_unix(2,8,0)+import qualified System.Posix.User.ByteString as UBS+#endif getFileInfo :: FilePath -> IO FileInfo getFileInfo fpStr = do@@ -29,8 +32,19 @@ -- Allow for username/group retrieval failure, especially useful for non-tty environment. -- Workaround for: https://ghc.haskell.org/trac/ghc/ticket/1487 -- Moreover, names are non-critical as they are not used during unarchival process+#if MIN_VERSION_unix(2,8,0)+ euEntry :: Either IOException UBS.UserEntry <- try $ Posix.getUserEntryForID uid+ egEntry :: Either IOException UBS.GroupEntry <- try $ Posix.getGroupEntryForID gid+ let+ fileUserName = either (const "") UBS.userName euEntry+ fileGroupName = either (const "") UBS.groupName egEntry+#else euEntry :: Either IOException Posix.UserEntry <- try $ Posix.getUserEntryForID uid egEntry :: Either IOException Posix.GroupEntry <- try $ Posix.getGroupEntryForID gid+ let+ fileUserName = either (const "") (S8.pack . Posix.userName) euEntry+ fileGroupName = either (const "") (S8.pack . Posix.groupName) egEntry+#endif (fType, fSize) <- case () of () | Posix.isRegularFile fs -> return (FTNormal, Posix.fileSize fs)@@ -45,9 +59,9 @@ return $! FileInfo { filePath = fp , fileUserId = uid- , fileUserName = either (const "") (S8.pack . Posix.userName) euEntry+ , fileUserName = fileUserName , fileGroupId = gid- , fileGroupName = either (const "") (S8.pack . Posix.groupName) egEntry+ , fileGroupName = fileGroupName , fileMode = Posix.fileMode fs .&. 0o7777 , fileSize = fSize , fileType = fType
tar-conduit.cabal view
@@ -1,5 +1,5 @@ name: tar-conduit-version: 0.3.2+version: 0.3.2.1 synopsis: Extract and create tar files using conduit for streaming description: Please see README.md. This is just filler to avoid warnings. homepage: https://github.com/snoyberg/tar-conduit#readme@@ -9,7 +9,10 @@ maintainer: michael@snoyman.com, bartavelle@gmail.com, alexey@kuleshevi.ch category: Data Conduit build-type: Simple-extra-source-files: README.md ChangeLog.md tests/files/libpq-0.3.tar.gz tests/files/subdir.tar+extra-source-files: README.md+ ChangeLog.md+ tests/files/libpq-0.3.tar.gz+ tests/files/subdir.tar cabal-version: 1.24 library
tests/Spec.hs view
@@ -40,7 +40,7 @@ let testPaths = ["src", "./tests", "README.md", "ChangeLog.md", "LICENSE"] ++ if isStack- then [".stack-work", "./sample"]+ then [".stack-work"] else [] hspec $ do describe "tar/untar" $ do