docker: Index | Files

package system

import ""


Package Files

chtimes.go chtimes_nowindows.go errors.go exitcode.go filesys_unix.go init.go lcow_unsupported.go lstat_unix.go meminfo.go meminfo_linux.go mknod.go path.go path_unix.go process_unix.go rm.go stat_linux.go stat_unix.go syscall_unix.go umask.go utimes_unix.go xattrs_linux.go


var (
    // ErrNotSupportedPlatform means the platform is not supported.
    ErrNotSupportedPlatform = errors.New("platform and architecture is not supported")

    // ErrNotSupportedOperatingSystem means the operating system is not supported.
    ErrNotSupportedOperatingSystem = errors.New("operating system is not supported")

func CheckSystemDriveAndRemoveDriveLetter Uses

func CheckSystemDriveAndRemoveDriveLetter(path string, driver PathVerifier) (string, error)

CheckSystemDriveAndRemoveDriveLetter verifies that a path, if it includes a drive letter, is the system drive. On Linux: this is a no-op. On Windows: this does the following> CheckSystemDriveAndRemoveDriveLetter verifies and manipulates a Windows path. This is used, for example, when validating a user provided path in docker cp. If a drive letter is supplied, it must be the system drive. The drive letter is always removed. Also, it translates it to OS semantics (IOW / to \). We need the path in this syntax so that it can ultimately be concatenated with a Windows long-path which doesn't support drive-letters. Examples: C: --> Fail C:\ --> \ a --> a /a --> \a d:\ --> Fail

func Chtimes Uses

func Chtimes(name string, atime time.Time, mtime time.Time) error

Chtimes changes the access time and modified time of a file at the given path

func CreateSequential Uses

func CreateSequential(name string) (*os.File, error)

CreateSequential creates the named file with mode 0666 (before umask), truncating it if it already exists. If successful, methods on the returned File can be used for I/O; the associated file descriptor has mode O_RDWR. If there is an error, it will be of type *PathError.

func DefaultPathEnv Uses

func DefaultPathEnv(os string) string

DefaultPathEnv is unix style list of directories to search for executables. Each directory is separated from the next by a colon ':' character .

func EnsureRemoveAll Uses

func EnsureRemoveAll(dir string) error

EnsureRemoveAll wraps `os.RemoveAll` to check for specific errors that can often be remedied. Only use `EnsureRemoveAll` if you really want to make every effort to remove a directory.

Because of the way `os.Remove` (and by extension `os.RemoveAll`) works, there can be a race between reading directory entries and then actually attempting to remove everything in the directory. These types of errors do not need to be returned since it's ok for the dir to be gone we can just retry the remove operation.

This should not return a `os.ErrNotExist` kind of error under any circumstances

func GetExitCode Uses

func GetExitCode(err error) (int, error)

GetExitCode returns the ExitStatus of the specified error if its type is exec.ExitError, returns 0 and an error otherwise.

func GetLongPathName Uses

func GetLongPathName(path string) (string, error)

GetLongPathName converts Windows short pathnames to full pathnames. For example C:\Users\ADMIN~1 --> C:\Users\Administrator. It is a no-op on non-Windows platforms

func InitLCOW Uses

func InitLCOW(_ bool)

InitLCOW does nothing since LCOW is a windows only feature

func IsAbs Uses

func IsAbs(path string) bool

IsAbs is a platform-specific wrapper for filepath.IsAbs.

func IsOSSupported Uses

func IsOSSupported(os string) bool

IsOSSupported determines if an operating system is supported by the host.

func IsProcessAlive Uses

func IsProcessAlive(pid int) bool

IsProcessAlive returns true if process with a given pid is running.

func IsProcessZombie Uses

func IsProcessZombie(pid int) (bool, error)

IsProcessZombie return true if process has a state with "Z"

func KillProcess Uses

func KillProcess(pid int)

KillProcess force-stops a process.

func LCOWSupported Uses

func LCOWSupported() bool

LCOWSupported returns true if Linux containers on Windows are supported.

func LUtimesNano Uses

func LUtimesNano(path string, ts []syscall.Timespec) error

LUtimesNano is used to change access and modification time of the specified path. It's used for symbol link file because unix.UtimesNano doesn't support a NOFOLLOW flag atm.

func Lgetxattr Uses

func Lgetxattr(path string, attr string) ([]byte, error)

Lgetxattr retrieves the value of the extended attribute identified by attr and associated with the given path in the file system. It will returns a nil slice and nil error if the xattr is not set.

func Lsetxattr Uses

func Lsetxattr(path string, attr string, data []byte, flags int) error

Lsetxattr sets the value of the extended attribute identified by attr and associated with the given path in the file system.

func Mkdev Uses

func Mkdev(major int64, minor int64) uint32

Mkdev is used to build the value of linux devices (in /dev/) which specifies major and minor number of the newly created device special file. Linux device nodes are a bit weird due to backwards compat with 16 bit device nodes. They are, from low to high: the lower 8 bits of the minor, then 12 bits of the major, then the top 12 bits of the minor.

func MkdirAll Uses

func MkdirAll(path string, perm os.FileMode) error

MkdirAll creates a directory named path along with any necessary parents, with permission specified by attribute perm for all dir created.

func MkdirAllWithACL Uses

func MkdirAllWithACL(path string, perm os.FileMode, sddl string) error

MkdirAllWithACL is a wrapper for os.MkdirAll on unix systems.

func Mknod Uses

func Mknod(path string, mode uint32, dev int) error

Mknod creates a filesystem node (file, device special file or named pipe) named path with attributes specified by mode and dev.

func OpenFileSequential Uses

func OpenFileSequential(name string, flag int, perm os.FileMode) (*os.File, error)

OpenFileSequential is the generalized open call; most users will use Open or Create instead. It opens the named file with specified flag (O_RDONLY etc.) and perm, (0666 etc.) if applicable. If successful, methods on the returned File can be used for I/O. If there is an error, it will be of type *PathError.

func OpenSequential Uses

func OpenSequential(name string) (*os.File, error)

OpenSequential opens the named file for reading. If successful, methods on the returned file can be used for reading; the associated file descriptor has mode O_RDONLY. If there is an error, it will be of type *PathError.

func TempFileSequential Uses

func TempFileSequential(dir, prefix string) (f *os.File, err error)

TempFileSequential creates a new temporary file in the directory dir with a name beginning with prefix, opens the file for reading and writing, and returns the resulting *os.File. If dir is the empty string, TempFile uses the default directory for temporary files (see os.TempDir). Multiple programs calling TempFile simultaneously will not choose the same file. The caller can use f.Name() to find the pathname of the file. It is the caller's responsibility to remove the file when no longer needed.

func Umask Uses

func Umask(newmask int) (oldmask int, err error)

Umask sets current process's file mode creation mask to newmask and returns oldmask.

func Unmount Uses

func Unmount(dest string) error

Unmount is a platform-specific helper function to call the unmount syscall.

func ValidatePlatform Uses

func ValidatePlatform(_ specs.Platform) error

ValidatePlatform determines if a platform structure is valid. This function is used for LCOW, and is a no-op on non-windows platforms.

type MemInfo Uses

type MemInfo struct {
    // Total usable RAM (i.e. physical RAM minus a few reserved bits and the
    // kernel binary code).
    MemTotal int64

    // Amount of free memory.
    MemFree int64

    // Total amount of swap space available.
    SwapTotal int64

    // Amount of swap space that is currently unused.
    SwapFree int64

MemInfo contains memory statistics of the host system.

func ReadMemInfo Uses

func ReadMemInfo() (*MemInfo, error)

ReadMemInfo retrieves memory statistics of the host system and returns a MemInfo type.

type PathVerifier Uses

type PathVerifier interface {
    IsAbs(string) bool

PathVerifier defines the subset of a PathDriver that CheckSystemDriveAndRemoveDriveLetter actually uses in order to avoid system depending on containerd/continuity.

type StatT Uses

type StatT struct {
    // contains filtered or unexported fields

StatT type contains status of a file. It contains metadata like permission, owner, group, size, etc about a file.

func FromStatT Uses

func FromStatT(s *syscall.Stat_t) (*StatT, error)

FromStatT converts a syscall.Stat_t type to a system.Stat_t type This is exposed on Linux as pkg/archive/changes uses it.

func Lstat Uses

func Lstat(path string) (*StatT, error)

Lstat takes a path to a file and returns a system.StatT type pertaining to that file.

Throws an error if the file does not exist

func Stat Uses

func Stat(path string) (*StatT, error)

Stat takes a path to a file and returns a system.StatT type pertaining to that file.

Throws an error if the file does not exist

func (StatT) GID Uses

func (s StatT) GID() uint32

GID returns file's group id of owner.

func (StatT) IsDir Uses

func (s StatT) IsDir() bool

IsDir reports whether s describes a directory.

func (StatT) Mode Uses

func (s StatT) Mode() uint32

Mode returns file's permission mode.

func (StatT) Mtim Uses

func (s StatT) Mtim() syscall.Timespec

Mtim returns file's last modification time.

func (StatT) Rdev Uses

func (s StatT) Rdev() uint64

Rdev returns file's device ID (if it's special file).

func (StatT) Size Uses

func (s StatT) Size() int64

Size returns file's size.

func (StatT) UID Uses

func (s StatT) UID() uint32

UID returns file's user id of owner.

Package system imports 19 packages (graph) and is imported by 8457 packages. Updated 2020-11-10. Refresh now. Tools for package owners.