Mode flags for Linux files.
const ( S_IXOTH = format.S_IXOTH S_IWOTH = format.S_IWOTH S_IROTH = format.S_IROTH S_IXGRP = format.S_IXGRP S_IWGRP = format.S_IWGRP S_IRGRP = format.S_IRGRP S_IXUSR = format.S_IXUSR S_IWUSR = format.S_IWUSR S_IRUSR = format.S_IRUSR S_ISVTX = format.S_ISVTX S_ISGID = format.S_ISGID S_ISUID = format.S_ISUID S_IFIFO = format.S_IFIFO S_IFCHR = format.S_IFCHR S_IFDIR = format.S_IFDIR S_IFBLK = format.S_IFBLK S_IFREG = format.S_IFREG S_IFLNK = format.S_IFLNK S_IFSOCK = format.S_IFSOCK TypeMask = format.TypeMask )
const (
BlockSize = 4096
)
func InlineData(w *Writer)
InlineData instructs the Writer to write small files into the inode structures directly. This creates smaller images but currently is not compatible with DAX.
A File represents a file to be added to an ext4 file system.
type File struct { Linkname string Size int64 Mode uint16 Uid, Gid uint32 Atime, Ctime, Mtime, Crtime time.Time Devmajor, Devminor uint32 Xattrs map[string][]byte }
An Option provides extra options to NewWriter.
type Option func(*Writer)
func MaximumDiskSize(size int64) Option
MaximumDiskSize instructs the writer to reserve enough metadata space for the specified disk size. If not provided, then 16GB is the default.
Writer writes a compact ext4 file system.
type Writer struct {
// contains filtered or unexported fields
}
func NewWriter(f io.ReadWriteSeeker, opts ...Option) *Writer
NewWriter returns a Writer that writes an ext4 file system to the provided WriteSeeker.
func (w *Writer) Close() error
func (w *Writer) Create(name string, f *File) error
Create adds a file to the file system.
func (w *Writer) Link(oldname, newname string) error
Link adds a hard link to the file system. We support creating hardlinks to symlinks themselves instead of what the symlinks link to, as this is what containerd does upstream.
func (w *Writer) MakeParents(name string) error
MakeParents ensures that all the parent directories in the path specified by `name` exists. If they don't exist it creates them (like `mkdir -p`). These non existing parent directories are created with the same permissions as that of it's parent directory. It is expected that the a call to make these parent directories will be made at a later point with the correct permissions, at that time the permissions of these directories will be updated.
func (w *Writer) Stat(name string) (*File, error)
Stat returns information about a file that has been written.
func (w *Writer) Write(b []byte) (int, error)