Documentation ¶
Index ¶
- Constants
- Variables
- type DirEntry
- type ExtractionOptions
- type FS
- func (f FS) ExtractSymlink(folder string) error
- func (f FS) ExtractTo(folder string) error
- func (f FS) ExtractWithOptions(folder string, op ExtractionOptions) error
- func (f FS) Glob(pattern string) (out []string, err error)
- func (f FS) Open(name string) (fs.File, error)
- func (f FS) ReadDir(name string) ([]fs.DirEntry, error)
- func (f FS) ReadFile(name string) ([]byte, error)
- func (f FS) Stat(name string) (fs.FileInfo, error)
- func (f FS) Sub(dir string) (fs.FS, error)
- type File
- func (f *File) Close() error
- func (f File) ExtractSymlink(folder string) error
- func (f File) ExtractTo(folder string) error
- func (f File) ExtractWithOptions(folder string, op ExtractionOptions) error
- func (f File) FS() (*FS, error)
- func (f File) GetSymlinkFile() *File
- func (f File) IsDir() bool
- func (f File) IsRegular() bool
- func (f File) IsSymlink() bool
- func (f File) Read(p []byte) (int, error)
- func (f File) ReadDir(n int) ([]fs.DirEntry, error)
- func (f File) Stat() (fs.FileInfo, error)
- func (f File) SymlinkPath() string
- func (f File) WriteTo(w io.Writer) (int64, error)
- type FileInfo
- type Reader
- type SuperblockFlags
Constants ¶
const ( GzipCompression = 1 + iota LzmaCompression LzoCompression XzCompression Lz4Compression ZstdCompression )
The types of compression supported by squashfs.
Variables ¶
var DefaultFlags = SuperblockFlags{ RemoveDuplicates: true, Exportable: true, }
DefaultFlags are the default SuperblockFlags that are used.
var ( //ErrOptions is returned when compression options that I haven't tested is set. When this is returned, the Reader is also returned. ErrOptions = errors.New("possibly incompatible compressor options") )
Functions ¶
This section is empty.
Types ¶
type DirEntry ¶ added in v0.4.0
type DirEntry struct {
// contains filtered or unexported fields
}
DirEntry is a child of a directory.
type ExtractionOptions ¶ added in v0.4.0
type ExtractionOptions struct { DereferenceSymlink bool //Replace symlinks with the target file UnbreakSymlink bool //Try to make sure symlinks remain unbroken when extracted, without changing the symlink Verbose bool //Prints extra info to log on an error FolderPerm fs.FileMode //The permissions used when creating the extraction folder // contains filtered or unexported fields }
ExtractionOptions are available options on how to extract.
func DefaultOptions ¶ added in v0.4.0
func DefaultOptions() ExtractionOptions
DefaultOptions is the default ExtractionOptions.
type FS ¶ added in v0.4.0
type FS struct {
// contains filtered or unexported fields
}
FS is a fs.FS representation of a squashfs directory. Implements fs.GlobFS, fs.ReadDirFS, fs.ReadFileFS, fs.StatFS, and fs.SubFS
func (FS) ExtractSymlink ¶ added in v0.4.0
ExtractSymlink extracts the File to the folder with the DereferenceSymlink option. It extracts the directory's contents to the folder.
func (FS) ExtractTo ¶ added in v0.4.0
ExtractTo extracts the File to the given folder with the default options. It extracts the directory's contents to the folder.
func (FS) ExtractWithOptions ¶ added in v0.4.0
func (f FS) ExtractWithOptions(folder string, op ExtractionOptions) error
ExtractWithOptions extracts the File to the given folder with the given ExtrationOptions. It extracts the directory's contents to the folder.
func (FS) Glob ¶ added in v0.4.0
Glob returns the name of the files at the given pattern. All paths are relative to the FS.
func (FS) ReadDir ¶ added in v0.4.0
ReadDir returns all the DirEntry returns all DirEntry's for the directory at name. If name is not a directory, returns an error.
type File ¶ added in v0.2.0
type File struct {
// contains filtered or unexported fields
}
File represents a file inside a squashfs archive.
func (*File) Close ¶ added in v0.2.0
Close simply nils the underlying reader. Here mostly to satisfy fs.File
func (File) ExtractSymlink ¶ added in v0.3.1
ExtractSymlink extracts the File to the folder with the DereferenceSymlink option. If the File is a directory, it instead extracts the directory's contents to the folder.
func (File) ExtractTo ¶ added in v0.3.0
ExtractTo extracts the File to the given folder with the default options. If the File is a directory, it instead extracts the directory's contents to the folder.
func (File) ExtractWithOptions ¶ added in v0.3.0
func (f File) ExtractWithOptions(folder string, op ExtractionOptions) error
ExtractWithOptions extracts the File to the given folder with the given ExtrationOptions. If the File is a directory, it instead extracts the directory's contents to the folder.
func (File) GetSymlinkFile ¶ added in v0.2.1
GetSymlinkFile returns the File the symlink is pointing to. If not a symlink, or the target is unobtainable (such as it being outside the archive or it's absolute) returns nil
func (File) Read ¶ added in v0.2.0
Read reads the data from the file. Only works if file is a normal file.
func (File) ReadDir ¶ added in v0.4.0
ReadDir returns n fs.DirEntry's that's contained in the File (if it's a directory). If n <= 0 all fs.DirEntry's are returned.
func (File) SymlinkPath ¶ added in v0.2.1
SymlinkPath returns the symlink's target path. Is the File isn't a symlink, returns an empty string.
type FileInfo ¶ added in v0.4.0
type FileInfo struct {
// contains filtered or unexported fields
}
FileInfo is a fs.FileInfo for a file.
func (FileInfo) File ¶ added in v0.4.0
File creates a File from the FileInfo. *File satisfies fs.File and fs.ReadDirFile.
type Reader ¶
type Reader struct { FS // contains filtered or unexported fields }
Reader processes and reads a squashfs archive.
func NewSquashfsReader ¶
NewSquashfsReader returns a new squashfs.Reader from an io.ReaderAt
type SuperblockFlags ¶ added in v0.4.0
type SuperblockFlags struct { //If true, inodes are stored uncompressed. UncompressedInodes bool //If true, data is stored uncompressed. UncompressedData bool //If true, fragments are stored uncompressed. UncompressedFragments bool //If true, ALL data is stored in sequential data blocks instead of utilizing fragments. NoFragments bool //If true, the last block of data will always be stored as a fragment if it's less then the block size. AlwaysFragment bool //If true, duplicate files are only stored once. (Currently unsupported) RemoveDuplicates bool //If true, the export table is populated. (Currently unsupported) Exportable bool //If true, the xattr table is uncompressed. (Currently unsupported) UncompressedXattr bool //If true, the xattr table is not populated. (Currently unsupported) NoXattr bool //If true, the UID/GID table is stored uncompressed. UncompressedIDs bool // contains filtered or unexported fields }
SuperblockFlags is the series of flags describing how a squashfs archive is packed.
func (*SuperblockFlags) ToUint ¶ added in v0.4.0
func (s *SuperblockFlags) ToUint() uint16
ToUint returns the uint16 representation of the given SuperblockFlags