tool/file

CUE v0.18.0

Package file provides file operations for cue tasks.

These are the supported tasks:

Schemas

Append

cue
Append: {
	$id: _id
	_id: "tool/file.Append"

	// filename names the file to append.
	//
	// Relative names are taken relative to the current working directory.
	// Slashes are converted to the native OS path separator.
	filename: !=""

	// permissions defines the permissions to use if the file does not yet exist.
	permissions: int | *0o666

	// contents specifies the bytes to be written.
	contents: bytes | string
}

Append writes contents to the given file.

Create

cue
Create: {
	$id: _id
	_id: "tool/file.Create"

	// filename names the file to write.
	//
	// Relative names are taken relative to the current working directory.
	// Slashes are converted to the native OS path separator.
	filename: !=""

	// permissions defines the permissions to use if the file does not yet exist.
	permissions: int | *0o666

	// contents specifies the bytes to be written.
	contents: bytes | string
}

Create writes contents to the given file.

Glob

cue
Glob: {
	$id: _id
	_id: "tool/file.Glob"

	// glob specifies the pattern to match files with.
	//
	// A relative pattern is taken relative to the current working directory.
	// Slashes are converted to the native OS path separator.
	glob:  !=""
	files: [...string]
}

Glob returns a list of files.

Mkdir

cue
Mkdir: {
	$id: _id
	_id: "tool/file.Mkdir"

	// The directory path to create.
	// If path is already a directory, Mkdir does nothing.
	// If path already exists and is not a directory, Mkdir will return an error.
	path: string

	// When true any necessary parents are created as well.
	createParents: bool | *false

	// Directory mode and permission bits (before umask).
	permissions: int | *0o777
}

Mkdir creates a directory at the specified path.

MkdirAll

cue
MkdirAll: Mkdir & {
	createParents: true
}

MkdirAll creates a directory at the specified path along with any necessary parents. If path is already a directory, MkdirAll does nothing. If path already exists and is not a directory, MkdirAll will return an error.

MkdirTemp

cue
MkdirTemp: {
	$id: _id
	_id: "tool/file.MkdirTemp"

	// The temporary directory is created in the directory specified by dir.
	// If dir is the empty string, MkdirTemp uses the default directory for
	// temporary files.
	dir: string | *""

	// The directory name is generated by adding a random string to the end of pattern.
	// If pattern includes a "*", the random string replaces the last "*" instead.
	pattern: string | *""

	// The absolute path of the created directory.
	path: string
}

MkdirTemp creates a new temporary directory in the directory dir and sets the pathname of the new directory in path. It is the caller's responsibility to remove the directory when it is no longer needed.

Read

cue
Read: {
	$id: _id
	_id: "tool/file.Read"

	// filename names the file to read.
	//
	// Relative names are taken relative to the current working directory.
	// Slashes are converted to the native OS path separator.
	filename: !=""

	// contents is the read contents. If the contents are constraint to bytes
	// (the default), the file is read as is. If it is constraint to a string,
	// the contents are checked to be valid UTF-8.
	contents: *bytes | string
}

Read reads the contents of a file.

RemoveAll

cue
RemoveAll: {
	$id: _id
	_id: "tool/file.RemoveAll"

	// The path to remove.
	// If the path does not exist, RemoveAll does nothing.
	path: string

	// success contains the status of the removal.
	// If path was removed success is set to true.
	// If path didn't exists success is set to false.
	success: bool
}

RemoveAll removes path and any children it contains. It removes everything it can but returns the first error it encounters.

cue
Symlink: {
	$id: _id
	_id: "tool/file.Symlink"

	// filename defines the name of the symlink.
	//
	// Relative names are taken relative to the current working directory.
	// Slashes are converted to the native OS path separator.
	filename: !=""

	// target names the target file or directory of the symlink.
	//
	// Relative names are taken relative to the current working directory.
	// Slashes are converted to the native OS path separator.
	target: !=""
}

Symlink creates a symbolic link.

Install CUE