Files
squashfs/reader.go
T
2024-09-20 20:10:33 -05:00

38 lines
641 B
Go

package squashfs
import (
"io"
"time"
"github.com/CalebQ42/squashfs/internal/toreader"
squashfslow "github.com/CalebQ42/squashfs/low"
)
type Reader struct {
*FS
Low squashfslow.Reader
}
func NewReader(r io.ReaderAt) (*Reader, error) {
rdr, err := squashfslow.NewReader(r)
if err != nil {
return nil, err
}
out := &Reader{
Low: *rdr,
}
out.FS = &FS{
d: rdr.Root,
r: out,
}
return out, nil
}
func NewReaderAtOffset(r io.ReaderAt, offset int64) (*Reader, error) {
return NewReader(toreader.NewOffsetReader(r, offset))
}
func (r *Reader) ModTime() time.Time {
return time.Unix(int64(r.Low.Superblock.ModTime), 0)
}