Dagger.Directory (dagger v0.19.4)

View Source

A directory.

Summary

Functions

Converts this directory to a local git repository

Load the directory as a Dagger module source

Load the directory as a Dagger module source

Return the difference between this directory and another directory, typically an older snapshot.

Change the owner of the directory contents recursively.

Return the difference between this directory and an another directory. The difference is encoded as a directory.

Return the directory's digest. The format of the digest is not guaranteed to be stable between releases of Dagger. It is guaranteed to be stable between invocations of the same Dagger engine.

Retrieves a directory at the given path.

Use Dockerfile compatibility to build a container from this directory. Only use this function for Dockerfile compatibility. Otherwise use the native Container type directly, it is feature-complete and supports all Dockerfile features.

Returns a list of files and directories at the given path.

check if a file or directory exists

Writes the contents of the directory to a path on the host.

Retrieve a file at the given path.

Return a snapshot with some paths included or excluded

Search up the directory tree for a file or directory, and return its path. If no match, return null

Returns a list of files and directories that matche the given pattern.

A unique identifier for this Directory.

Returns the name of the directory.

Searches for content matching the given regular expression or literal string.

Force evaluation in the engine.

Opens an interactive terminal in new container with this directory mounted inside.

Return a directory with changes from another directory applied to it.

Return a snapshot with a directory added

Raise an error.

Retrieves this directory plus the contents of the given file copied to the given path.

Retrieves this directory plus the contents of the given files copied to the given path.

Retrieves this directory plus a new directory created at the given path.

Return a snapshot with a new file added

Retrieves this directory with the given Git-compatible patch applied.

Retrieves this directory with the given Git-compatible patch file applied.

Return a snapshot with a symlink

Retrieves this directory with all file/dir timestamps set to the given time.

Return a snapshot with a subdirectory removed

Return a snapshot with a file removed

Return a snapshot with files removed

Types

t()

@type t() :: %Dagger.Directory{client: term(), query_builder: term()}

Functions

as_git(directory)

@spec as_git(t()) :: Dagger.GitRepository.t()

Converts this directory to a local git repository

as_module(directory, optional_args \\ [])

@spec as_module(t(), [{:source_root_path, String.t() | nil}]) :: Dagger.Module.t()

Load the directory as a Dagger module source

as_module_source(directory, optional_args \\ [])

@spec as_module_source(t(), [{:source_root_path, String.t() | nil}]) ::
  Dagger.ModuleSource.t()

Load the directory as a Dagger module source

changes(directory, from)

@spec changes(t(), t()) :: Dagger.Changeset.t()

Return the difference between this directory and another directory, typically an older snapshot.

The difference is encoded as a changeset, which also tracks removed files, and can be applied to other directories.

chown(directory, path, owner)

@spec chown(t(), String.t(), String.t()) :: t()

Change the owner of the directory contents recursively.

diff(directory, other)

@spec diff(t(), t()) :: t()

Return the difference between this directory and an another directory. The difference is encoded as a directory.

digest(directory)

@spec digest(t()) :: {:ok, String.t()} | {:error, term()}

Return the directory's digest. The format of the digest is not guaranteed to be stable between releases of Dagger. It is guaranteed to be stable between invocations of the same Dagger engine.

directory(directory, path)

@spec directory(t(), String.t()) :: t()

Retrieves a directory at the given path.

docker_build(directory, optional_args \\ [])

@spec docker_build(t(),
  dockerfile: String.t() | nil,
  platform: Dagger.Platform.t() | nil,
  build_args: [Dagger.BuildArg.t()],
  target: String.t() | nil,
  secrets: [Dagger.SecretID.t()],
  no_init: boolean() | nil
) :: Dagger.Container.t()

Use Dockerfile compatibility to build a container from this directory. Only use this function for Dockerfile compatibility. Otherwise use the native Container type directly, it is feature-complete and supports all Dockerfile features.

entries(directory, optional_args \\ [])

@spec entries(t(), [{:path, String.t() | nil}]) ::
  {:ok, [String.t()]} | {:error, term()}

Returns a list of files and directories at the given path.

exists(directory, path, optional_args \\ [])

@spec exists(t(), String.t(),
  expected_type: Dagger.ExistsType.t() | nil,
  do_not_follow_symlinks: boolean() | nil
) :: {:ok, boolean()} | {:error, term()}

check if a file or directory exists

export(directory, path, optional_args \\ [])

@spec export(t(), String.t(), [{:wipe, boolean() | nil}]) ::
  {:ok, String.t()} | {:error, term()}

Writes the contents of the directory to a path on the host.

file(directory, path)

@spec file(t(), String.t()) :: Dagger.File.t()

Retrieve a file at the given path.

filter(directory, optional_args \\ [])

@spec filter(t(),
  exclude: [String.t()],
  include: [String.t()],
  gitignore: boolean() | nil
) :: t()

Return a snapshot with some paths included or excluded

find_up(directory, name, start)

@spec find_up(t(), String.t(), String.t()) ::
  {:ok, String.t() | nil} | {:error, term()}

Search up the directory tree for a file or directory, and return its path. If no match, return null

glob(directory, pattern)

@spec glob(t(), String.t()) :: {:ok, [String.t()]} | {:error, term()}

Returns a list of files and directories that matche the given pattern.

id(directory)

@spec id(t()) :: {:ok, Dagger.DirectoryID.t()} | {:error, term()}

A unique identifier for this Directory.

name(directory)

@spec name(t()) :: {:ok, String.t()} | {:error, term()}

Returns the name of the directory.

search(directory, pattern, optional_args \\ [])

@spec search(t(), String.t(),
  paths: [String.t()],
  globs: [String.t()],
  literal: boolean() | nil,
  multiline: boolean() | nil,
  dotall: boolean() | nil,
  insensitive: boolean() | nil,
  skip_ignored: boolean() | nil,
  skip_hidden: boolean() | nil,
  files_only: boolean() | nil,
  limit: integer() | nil
) :: {:ok, [Dagger.SearchResult.t()]} | {:error, term()}

Searches for content matching the given regular expression or literal string.

Uses Rust regex syntax; escape literal ., [, ], {, }, | with backslashes.

sync(directory)

@spec sync(t()) :: {:ok, t()} | {:error, term()}

Force evaluation in the engine.

terminal(directory, optional_args \\ [])

@spec terminal(t(),
  container: Dagger.ContainerID.t() | nil,
  cmd: [String.t()],
  experimental_privileged_nesting: boolean() | nil,
  insecure_root_capabilities: boolean() | nil
) :: t()

Opens an interactive terminal in new container with this directory mounted inside.

with_changes(directory, changes)

@spec with_changes(t(), Dagger.Changeset.t()) :: t()

Return a directory with changes from another directory applied to it.

with_directory(directory, path, source, optional_args \\ [])

@spec with_directory(t(), String.t(), t(),
  exclude: [String.t()],
  include: [String.t()],
  gitignore: boolean() | nil,
  owner: String.t() | nil
) :: t()

Return a snapshot with a directory added

with_error(directory, err)

@spec with_error(t(), String.t()) :: t()

Raise an error.

with_file(directory, path, source, optional_args \\ [])

@spec with_file(t(), String.t(), Dagger.File.t(),
  permissions: integer() | nil,
  owner: String.t() | nil
) ::
  t()

Retrieves this directory plus the contents of the given file copied to the given path.

with_files(directory, path, sources, optional_args \\ [])

@spec with_files(t(), String.t(), [Dagger.FileID.t()], [
  {:permissions, integer() | nil}
]) :: t()

Retrieves this directory plus the contents of the given files copied to the given path.

with_new_directory(directory, path, optional_args \\ [])

@spec with_new_directory(t(), String.t(), [{:permissions, integer() | nil}]) :: t()

Retrieves this directory plus a new directory created at the given path.

with_new_file(directory, path, contents, optional_args \\ [])

@spec with_new_file(t(), String.t(), String.t(), [{:permissions, integer() | nil}]) ::
  t()

Return a snapshot with a new file added

with_patch(directory, patch)

@spec with_patch(t(), String.t()) :: t()

Retrieves this directory with the given Git-compatible patch applied.

Experimental

"This API is highly experimental and may be removed or replaced entirely."

with_patch_file(directory, patch)

@spec with_patch_file(t(), Dagger.File.t()) :: t()

Retrieves this directory with the given Git-compatible patch file applied.

Experimental

"This API is highly experimental and may be removed or replaced entirely."

with_symlink(directory, target, link_name)

@spec with_symlink(t(), String.t(), String.t()) :: t()

Return a snapshot with a symlink

with_timestamps(directory, timestamp)

@spec with_timestamps(t(), integer()) :: t()

Retrieves this directory with all file/dir timestamps set to the given time.

without_directory(directory, path)

@spec without_directory(t(), String.t()) :: t()

Return a snapshot with a subdirectory removed

without_file(directory, path)

@spec without_file(t(), String.t()) :: t()

Return a snapshot with a file removed

without_files(directory, paths)

@spec without_files(t(), [String.t()]) :: t()

Return a snapshot with files removed