tar-conduit 0.3.1 → 0.3.2
raw patch · 6 files changed
+17/−3 lines, 6 filesbinary-added
Files
- ChangeLog.md +3/−0
- src/Data/Conduit/Tar/Unix.hs +2/−0
- src/Data/Conduit/Tar/Windows.hs +2/−0
- tar-conduit.cabal +3/−3
- tests/Spec.hs +7/−0
- tests/files/subdir.tar binary
ChangeLog.md view
@@ -1,3 +1,6 @@+## 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 * Fixed modification time restoration on Windows for read-only files [#25](https://github.com/snoyberg/tar-conduit/pull/25).
src/Data/Conduit/Tar/Unix.hs view
@@ -81,6 +81,7 @@ excs <- liftIO $ do -- Try to unlink any existing file/symlink void $ tryAny $ Posix.removeLink fpStr+ when lenient $ Dir.createDirectoryIfMissing True $ Posix.takeDirectory fpStr Posix.createSymbolicLink (decodeFilePath link) fpStr eExc1 <- tryAnyCond $ Posix.setSymbolicLinkOwnerAndGroup fpStr fileUserId fileGroupId #if MIN_VERSION_unix(2,7,0)@@ -111,6 +112,7 @@ return (either ((excs ++) . pure) (const excs) eExc) unless (null excs) $ yield (return (fi, excs)) FTNormal -> do+ when lenient $ liftIO $ Dir.createDirectoryIfMissing True $ Posix.takeDirectory fpStr sinkFile fpStr excs <- liftIO $ do excs <- restorePermissions
src/Data/Conduit/Tar/Windows.hs view
@@ -16,6 +16,7 @@ import Foreign.C.Types (CTime (..)) import qualified System.Directory as Dir import qualified System.PosixCompat.Files as Posix+import qualified System.FilePath as FilePath getFileInfo :: FilePath -> IO FileInfo@@ -67,6 +68,7 @@ (`when` Dir.setModificationTime fpStr modTime)) return (fi, either ((excs ++) . pure) (const excs) eExc) FTNormal -> do+ when lenient $ liftIO $ Dir.createDirectoryIfMissing True $ FilePath.takeDirectory fpStr sinkFile fpStr excs <- liftIO $ restoreTimeAndMode unless (null excs) $ yield $ return (fi, excs)
tar-conduit.cabal view
@@ -1,5 +1,5 @@ name: tar-conduit-version: 0.3.1+version: 0.3.2 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,8 +9,8 @@ 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-cabal-version: >= 1.24.0.0+extra-source-files: README.md ChangeLog.md tests/files/libpq-0.3.tar.gz tests/files/subdir.tar+cabal-version: 1.24 library if impl(ghc < 8)
tests/Spec.hs view
@@ -65,6 +65,13 @@ P.length tb1 `shouldBe` P.length tb2 zipWithM_ shouldBe (fmap fst tb2) (fmap fst tb1) zipWithM_ shouldBe (fmap snd tb2) (fmap snd tb1)+ describe "untar" $ do+ around (withTempTarFiles baseTmp) $+ it "create-intermediate" $ \(fpIn, hIn, outDir, fpOut) -> do+ hClose hIn+ extractTarballLenient "tests/files/subdir.tar" (Just outDir)+ curDir <- getCurrentDirectory+ collectContent (outDir Posix.</> "dir/subdir/") `shouldReturn` "Hello World\n" describe "ustar" ustarSpec describe "GNUtar" gnutarSpec describe "unsupported headers" $ do
+ tests/files/subdir.tar view
binary file changed (absent → 10240 bytes)