Documentation ¶
Index ¶
- Variables
- func CheckSystemDriveAndRemoveDriveLetter(path string) (string, error)
- func Chtimes(name string, atime time.Time, mtime time.Time) error
- func DefaultPathEnv(os string) string
- func GetExitCode(err error) (int, error)
- func GetLongPathName(path string) (string, error)
- func IsAbs(path string) bool
- func IsOSSupported(os string) bool
- func IsProcessAlive(pid int) bool
- func IsProcessZombie(pid int) (bool, error)
- func KillProcess(pid int)
- func LUtimesNano(path string, ts []syscall.Timespec) error
- func Lgetxattr(path string, attr string) ([]byte, error)
- func Lsetxattr(path string, attr string, data []byte, flags int) error
- func Mkdev(major int64, minor int64) uint32
- func MkdirAll(path string, perm os.FileMode) error
- func MkdirAllWithACL(path string, perm os.FileMode, sddl string) error
- func Mknod(path string, mode uint32, dev int) error
- func Umask(newmask int) (oldmask int, err error)
- type MemInfo
- type StatT
Constants ¶
This section is empty.
Variables ¶
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") )
Functions ¶
func CheckSystemDriveAndRemoveDriveLetter ¶
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 DefaultPathEnv ¶
DefaultPathEnv is unix style list of directories to search for executables. Each directory is separated from the next by a colon ':' character . For Windows containers, an empty string is returned as the default path will be set by the container, and Docker has no context of what the default path should be.
func GetExitCode ¶
GetExitCode returns the ExitStatus of the specified error if its type is exec.ExitError, returns 0 and an error otherwise.
func GetLongPathName ¶
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 IsAbs ¶
IsAbs is a platform-agnostic wrapper for filepath.IsAbs.
On Windows, golang filepath.IsAbs does not consider a path \windows\system32 as absolute as it doesn't start with a drive-letter/colon combination. However, in docker we need to verify things such as WORKDIR /windows/system32 in a Dockerfile (which gets translated to \windows\system32 when being processed by the daemon). This SHOULD be treated as absolute from a docker processing perspective.
func IsOSSupported ¶
IsOSSupported determines if an operating system is supported by the host.
func IsProcessAlive ¶
IsProcessAlive returns true if process with a given pid is running.
func IsProcessZombie ¶
IsProcessZombie return true if process has a state with "Z" http://man7.org/linux/man-pages/man5/proc.5.html
func LUtimesNano ¶
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 ¶
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 ¶
Lsetxattr sets the value of the extended attribute identified by attr and associated with the given path in the file system.
func Mkdev ¶
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 ¶
MkdirAll creates a directory named path along with any necessary parents, with permission specified by attribute perm for all dir created.
func MkdirAllWithACL ¶
MkdirAllWithACL is a wrapper for os.MkdirAll on unix systems.
Types ¶
type MemInfo ¶
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 ¶
ReadMemInfo retrieves memory statistics of the host system and returns a MemInfo type.
type StatT ¶
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 ¶
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 ¶
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 ¶
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