Some setup for 1.16
This commit is contained in:
@@ -13,6 +13,8 @@ import (
|
|||||||
"github.com/CalebQ42/squashfs/internal/inode"
|
"github.com/CalebQ42/squashfs/internal/inode"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
//TODO: implement fs.FS, fs.ReadDirFile, fs.ReadFileFS, fs.StatFS, fs.SubFS with 1.16
|
||||||
|
|
||||||
var (
|
var (
|
||||||
//ErrNotDirectory is returned when you're trying to do directory things with a non-directory
|
//ErrNotDirectory is returned when you're trying to do directory things with a non-directory
|
||||||
errNotDirectory = errors.New("File is not a directory")
|
errNotDirectory = errors.New("File is not a directory")
|
||||||
@@ -95,6 +97,18 @@ func (f *File) Sys() interface{} {
|
|||||||
return f.reader
|
return f.reader
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//TODO: Implement below when 1.16 drops to satisfy fs.File
|
||||||
|
|
||||||
|
//Stat simply returns the file. It's simply here to satisfy fs.File
|
||||||
|
// func (f *File) Stat() (fs.FileInfo, error) {
|
||||||
|
// return f, nil
|
||||||
|
// }
|
||||||
|
|
||||||
|
//Close does nothing. It's simply here to satisfy fs.File
|
||||||
|
// func (f *File) Close() error {
|
||||||
|
// return nil
|
||||||
|
// }
|
||||||
|
|
||||||
//GetChildren returns a *squashfs.File slice of every direct child of the directory. If the File is not a directory, will return ErrNotDirectory
|
//GetChildren returns a *squashfs.File slice of every direct child of the directory. If the File is not a directory, will return ErrNotDirectory
|
||||||
func (f *File) GetChildren() (children []*File, err error) {
|
func (f *File) GetChildren() (children []*File, err error) {
|
||||||
children = make([]*File, 0)
|
children = make([]*File, 0)
|
||||||
@@ -196,6 +210,16 @@ func (f *File) GetFileAtPath(dirPath string) *File {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//TODO: add with 1.16
|
||||||
|
//Open is the same as GetFileAtPath to implement fs.FS
|
||||||
|
// func (f *File) Open(name string) (fs.File, error) {
|
||||||
|
// tmp := f.GetFileAtPath(name)
|
||||||
|
// if tmp == nil {
|
||||||
|
// return tmp, fs.ErrNotExist
|
||||||
|
// }
|
||||||
|
// return tmp, nil
|
||||||
|
// }
|
||||||
|
|
||||||
//IsDir returns if the file is a directory.
|
//IsDir returns if the file is a directory.
|
||||||
func (f *File) IsDir() bool {
|
func (f *File) IsDir() bool {
|
||||||
return f.filType == inode.DirType || f.filType == inode.ExtDirType
|
return f.filType == inode.DirType || f.filType == inode.ExtDirType
|
||||||
@@ -269,6 +293,13 @@ func (f *File) Mode() os.FileMode {
|
|||||||
return mode
|
return mode
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//TODO: Implement with 1.16
|
||||||
|
|
||||||
|
//Type returns the type bits from fs.FileMode
|
||||||
|
// func (f *File) Type() fs.FileInfo {
|
||||||
|
// return Mod() ^&fs.ModePerm
|
||||||
|
// }
|
||||||
|
|
||||||
//ExtractTo extracts the file to the given path. This is the same as ExtractWithOptions(path, false, false, os.ModePerm, false).
|
//ExtractTo extracts the file to the given path. This is the same as ExtractWithOptions(path, false, false, os.ModePerm, false).
|
||||||
//Will NOT try to keep symlinks valid, folders extracted will have the permissions set by the squashfs, but the folder to make path will have full permissions (777).
|
//Will NOT try to keep symlinks valid, folders extracted will have the permissions set by the squashfs, but the folder to make path will have full permissions (777).
|
||||||
//
|
//
|
||||||
|
|||||||
Reference in New Issue
Block a user