Releases: spf13/afero
Releases · spf13/afero
v1.4.1: Do not panic on passing empty tar reader to tarfs
Merge pull request #268 from hasheddan/tarfs-panic Do not panic on passing empty tar reader to tarfs
v1.4.0: read-only tarfs implementation
Add tarfs implementation (reopen #265) (#266) * Initial commit for tarfs * tarfs: reword "open" status field * tarfs: use TestMain for FS setup We want to have the FS variable available through all the tests, so we we use a common "setup" function to initialise it. * tarfs: test: early exit for nonexisting files * tarfs: create test for filesystem Open * tarfs: implement File.Stat * tarfs: implement Fs.Open * tarfs: return error on non-supported methods As tarfs is a read-only filesystem backend, we return EROFS (Read-only file system) from any method that makes modifications. * tarfs: implement File.data as bytes.Reader Most of the operations that we want to implement for tarfs.File are already defined in bytes.Reader. We could use a plain slice and implement all the seeking manually, but I think using this is more convenient. * tarfs: short format for simple methods * tarfs: add missing closing brace in tests * tarfs: add test for File.ReadAt * tarfs: test File.ReadAt * tarfs: add tests for File.Read * tarfs: implement File.Read * tarfs: add tests for File.Seek * tarfs: implement File.Seek * tarfs: add tests for File.Name * tarfs: implement File.Name * tarfs: add tests for File.Close * tarfs: implement File.Close * tarfs: add tests for OpenFile * tarfs: fix test for Fs.OpenFile If the call fails, we don't have to close the file * tarfs: remove code not needed after using filepath.Clean * tarfs: Open: return a copy of the internal structure As we modify the struct fields when closing, we don't want to lose the internal representation of the file, in case we want to reopen it. Return a copy of the File, although we keep using the same pointers to tar.Header and buffer.Reader. Maybe we will need to change that in the future. * tarfs: implement Fs.OpenFile * tarfs: use Fatalf for unexpected error in TestFsOpen * tarfs: add tests for Fs.Stat * tarfs: implement Fs.Stat * tarfs: remove TestNewFs That test depends too much on the internal imlementation, and it is easier to break if we change it. * tarfs: remove unused code * tarfs: change internal implementation To be able to handle directories (File.Readdir, File.Readdirnames), the naive single-map implementation makes it a bit harder to implement. Inspired by the zipfs backend, switch to an internal implementation of a map of directories that contains a map of files, so the directory methods are easier to implement. Also, treat the "virtual" filesystem as absolute, just like zipfs does. * tarfs: use Fatal errors to avoid panics * tarfs: add pseudoroot * tarfs: add tests for File.Readdir * tarfs: add pointer Fs in the File structure For directory-related operations we will need to access the internal structure in the Fs. As Readdir and Readdirnames are File methods, we need to access such structure from the File. * tarfs: fix error * tarfs: use just the names for TestReaddir, easier than using fill os.FileInfo entries * tarfs: create a copy of the original entry when opening a file We added the fs field in the File struct to reference the underlying Fs object, but in the Open cal we were not passing it, making all the opened files to have a nil pointer in that field. Change to make a copy of the original file, and returning that * tarfs: implement File.Readdir * tarfs: add tests for File.Readdirnames * tarfs: implement Readdirnames * tarfs: add test for File.Name * tarfs: change tests to use the Afero interface instead * tarfs: add tests for Glob from zipfs * tarfs: update main repo references to tarfs * tarfs: use OS-specific file separator for pseudoroot * tarfs: fix path handling in Windows systems
v1.3.5: offset fixes in mem and UnionFile
Includes:
- mem: fix incorrect offset in Write
- Fix amount of files read in UnionFile.Readdir
v1.3.4: bump golang.org/x/text to v0.3.3
Bump golang.org/x/text to v0.3.3 in order to fix https://nvd.nist.gov/vuln/detail/CVE-2020-14040
v1.3.3: Improved handling of mode bits
Merge pull request #250 from anishathalye/improve-mode Improve handling of mode bits
v1.3.2: Prevent MemMapFs.Chmod from changing all mode bits
Merge pull request #249 from JohnStarich/bugfix/memfs-chmod-perm-only Prevent MemMapFs.Chmod from changing all mode bits
v1.3.1: Fix panic when not filling up zipfs's read buffer
Merge pull request #247 from JohnStarich/bugfix/zipfs-read-small-file Fix panic when not filling up zipfs's read buffer
v1.3.0: zipfs, AIX, symlink and readlink support, etc.
Notable changes:
- Add AIX support
- Add zipfs, an archive/zip-based read-only filesystem
- Add an optional interface for Symlink and Readlink
Other enhancements:
- TempFile support for wildcards instead of only prefixes
- Implement sftpfs.OpenFile method
- Add support for os.O_EXCL in MemMapFs
Bugfixes:
- Fixed the mem.File implementation to respect the io.ReaderAt contract by storing the original offset before the Read and restoring the offset after the Read.
- Return closed error in mem.File.Write() after mem.File.Close() has been called
- Add missing error check in RegexpFs.Open()
v1.2.2: Fix UnionFile.Readdir return when c <= 0
Update Readdir to match behavior of stdlib os package. Fixes #197
v1.2.1: Fix missing bounds checking in UnionFile.Readdir
It will now return io.EOF at the end of the directory view. Fixes #194