osutil

package
v0.0.0-...-f0d17a2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 6, 2023 License: Apache-2.0, Apache-2.0 Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultDirPerm  = 0755
	DefaultFilePerm = 0644
	DefaultExecPerm = 0755
)

Variables

This section is empty.

Functions

func Abs

func Abs(path string) string

func CloseMemMappedFile

func CloseMemMappedFile(f *os.File, mem []byte) error

CloseMemMappedFile destroys memory mapping created by CreateMemMappedFile.

func Command

func Command(bin string, args ...string) *exec.Cmd

Command is similar to os/exec.Command, but also sets PDEATHSIG on linux.

func CopyFile

func CopyFile(oldFile, newFile string) error

CopyFile atomically copies oldFile to newFile preserving permissions and modification time.

func CopyFiles

func CopyFiles(srcDir, dstDir string, files map[string]bool) error

CopyFiles copies files from srcDir to dstDir as atomically as possible. Files are assumed to be relative names in slash notation. All other files in dstDir are removed.

func CreateMemMappedFile

func CreateMemMappedFile(size int) (f *os.File, mem []byte, err error)

CreateMemMappedFile creates a temp file with the requested size and maps it into memory.

func FilesExist

func FilesExist(dir string, files map[string]bool) bool

FilesExist returns true if all files exist in dir. Files are assumed to be relative names in slash notation.

func HandleInterrupts

func HandleInterrupts(shutdown chan struct{})

HandleInterrupts closes shutdown chan on first SIGINT (expecting that the program will gracefully shutdown and exit) and terminates the process on third SIGINT.

func IsAccessible

func IsAccessible(name string) error

IsAccessible checks if the file can be opened.

func IsExist

func IsExist(name string) bool

IsExist returns true if the file name exists.

func LinkFiles

func LinkFiles(srcDir, dstDir string, files map[string]bool) error

LinkFiles creates hard links for files from dstDir to srcDir. Files are assumed to be relative names in slash notation. All other files in dstDir are removed.

func ListDir

func ListDir(dir string) ([]string, error)

Return all files in a directory.

func LongPipe

func LongPipe() (io.ReadCloser, io.WriteCloser, error)

func MkdirAll

func MkdirAll(dir string) error

func PrependContext

func PrependContext(ctx string, err error) error

func ProcessExitStatus

func ProcessExitStatus(ps *os.ProcessState) int

ProcessExitStatus returns process exit status. This is here only because of fuchsia that does not implement WaitStatus.

func ProcessTempDir

func ProcessTempDir(where string) (string, error)

ProcessTempDir creates a new temp dir in where and returns its path and an unique index. It also cleans up old, unused temp dirs after dead processes.

func RemoveAll

func RemoveAll(dir string) error

RemoveAll is similar to os.RemoveAll, but can handle more cases.

func Rename

func Rename(oldFile, newFile string) error

Rename is similar to os.Rename but handles cross-device renaming (by copying).

func Run

func Run(timeout time.Duration, cmd *exec.Cmd) ([]byte, error)

Run runs cmd with the specified timeout. Returns combined output. If the command fails, err includes output.

func RunCmd

func RunCmd(timeout time.Duration, dir, bin string, args ...string) ([]byte, error)

RunCmd runs "bin args..." in dir with timeout and returns its output.

func Sandbox

func Sandbox(cmd *exec.Cmd, user, net bool) error

func SandboxChown

func SandboxChown(file string) error

func TempFile

func TempFile(prefix string) (string, error)

TempFile creates a unique temp filename. Note: the file already exists when the function returns.

func WriteExecFile

func WriteExecFile(filename string, data []byte) error

func WriteFile

func WriteFile(filename string, data []byte) error

func WriteTempFile

func WriteTempFile(data []byte) (string, error)

WriteTempFile writes data to a temp file and returns its name.

Types

type VerboseError

type VerboseError struct {
	Title  string
	Output []byte
}

func (*VerboseError) Error

func (err *VerboseError) Error() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL