Packages
dagger
0.20.7
0.21.7
0.21.6
0.21.5
0.21.4
0.21.3
0.21.2
0.21.1
0.21.0
0.20.8
0.20.7
0.20.6
0.20.5
0.20.4
0.20.3
0.20.2
0.20.1
0.20.0
0.19.11
0.19.10
0.19.9
0.19.8
0.19.7
0.19.6
0.19.5
0.19.4
0.19.3
0.19.2
0.19.1
0.19.0
0.18.19
0.18.18
0.18.17
0.18.16
0.18.15
0.18.14
0.18.13
0.18.12
0.18.11
0.18.10
0.18.9
0.18.8
0.18.7
0.18.5
0.18.4
0.18.3
0.18.2
0.18.1
0.18.0
0.17.2
0.17.1
0.17.0
0.16.3
0.16.2
0.16.1
0.16.0
0.15.4
0.15.3
0.15.2
0.15.1
0.15.0
0.14.0
0.13.7
0.13.6
0.13.5
0.13.4
0.13.3
0.13.2
0.13.1
0.13.0
0.12.7
0.12.6
0.12.5
0.12.4
0.12.3
0.12.2
0.12.1
0.12.0
0.11.9
0.11.8
0.11.7
0.11.6
0.11.5
0.11.4
0.11.3
0.11.2
0.11.1
0.11.0
0.10.3
0.10.2
0.10.1
0.10.0
0.9.11
0.9.10
0.9.9
0.9.8
0.9.7
0.9.6
0.9.5
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
0.8.8
0.8.7
0.8.6
0.8.5
0.8.4
0.8.2
0.0.0
retired
Dagger SDK for Elixir
Current section
Files
Jump to
Current section
Files
lib/dagger/gen/workspace.ex
# This file generated by `dagger_codegen`. Please DO NOT EDIT.
defmodule Dagger.Workspace do
@moduledoc """
A Dagger workspace detected from the current working directory.
"""
use Dagger.Core.Base, kind: :object, name: "Workspace"
alias Dagger.Core.Client
alias Dagger.Core.QueryBuilder, as: QB
@derive Dagger.ID
defstruct [:query_builder, :client]
@type t() :: %__MODULE__{}
@doc """
Canonical Dagger address of the workspace directory.
"""
@spec address(t()) :: {:ok, String.t()} | {:error, term()}
def address(%__MODULE__{} = workspace) do
query_builder =
workspace.query_builder |> QB.select("address")
Client.execute(workspace.client, query_builder)
end
@doc """
Return all checks from modules loaded in the workspace.
"""
@spec checks(t(), [{:include, [String.t()]}]) :: Dagger.CheckGroup.t()
def checks(%__MODULE__{} = workspace, optional_args \\ []) do
query_builder =
workspace.query_builder
|> QB.select("checks")
|> QB.maybe_put_arg("include", optional_args[:include])
%Dagger.CheckGroup{
query_builder: query_builder,
client: workspace.client
}
end
@doc """
The client ID that owns this workspace's host filesystem.
"""
@spec client_id(t()) :: {:ok, String.t()} | {:error, term()}
def client_id(%__MODULE__{} = workspace) do
query_builder =
workspace.query_builder |> QB.select("clientId")
Client.execute(workspace.client, query_builder)
end
@doc """
Path to config.toml relative to the workspace boundary (empty if not initialized).
"""
@spec config_path(t()) :: {:ok, String.t()} | {:error, term()}
def config_path(%__MODULE__{} = workspace) do
query_builder =
workspace.query_builder |> QB.select("configPath")
Client.execute(workspace.client, query_builder)
end
@doc """
Returns a Directory from the workspace.
Relative paths resolve from the workspace directory. Absolute paths resolve from the workspace boundary.
"""
@spec directory(t(), String.t(), [
{:exclude, [String.t()]},
{:include, [String.t()]},
{:gitignore, boolean() | nil}
]) :: Dagger.Directory.t()
def directory(%__MODULE__{} = workspace, path, optional_args \\ []) do
query_builder =
workspace.query_builder
|> QB.select("directory")
|> QB.put_arg("path", path)
|> QB.maybe_put_arg("exclude", optional_args[:exclude])
|> QB.maybe_put_arg("include", optional_args[:include])
|> QB.maybe_put_arg("gitignore", optional_args[:gitignore])
%Dagger.Directory{
query_builder: query_builder,
client: workspace.client
}
end
@doc """
Returns a File from the workspace.
Relative paths resolve from the workspace directory. Absolute paths resolve from the workspace boundary.
"""
@spec file(t(), String.t()) :: Dagger.File.t()
def file(%__MODULE__{} = workspace, path) do
query_builder =
workspace.query_builder |> QB.select("file") |> QB.put_arg("path", path)
%Dagger.File{
query_builder: query_builder,
client: workspace.client
}
end
@doc """
Search for a file or directory by walking up from the start path within the workspace.
Returns the absolute workspace path if found, or null if not found.
Relative start paths resolve from the workspace directory.
The search stops at the workspace boundary and will not traverse above it.
"""
@spec find_up(t(), String.t(), [{:from, String.t() | nil}]) ::
{:ok, String.t() | nil} | {:error, term()}
def find_up(%__MODULE__{} = workspace, name, optional_args \\ []) do
query_builder =
workspace.query_builder
|> QB.select("findUp")
|> QB.put_arg("name", name)
|> QB.maybe_put_arg("from", optional_args[:from])
Client.execute(workspace.client, query_builder)
end
@doc """
Return all generators from modules loaded in the workspace.
"""
@spec generators(t(), [{:include, [String.t()]}]) :: Dagger.GeneratorGroup.t()
def generators(%__MODULE__{} = workspace, optional_args \\ []) do
query_builder =
workspace.query_builder
|> QB.select("generators")
|> QB.maybe_put_arg("include", optional_args[:include])
%Dagger.GeneratorGroup{
query_builder: query_builder,
client: workspace.client
}
end
@doc """
Whether a config.toml file exists in the workspace.
"""
@spec has_config(t()) :: {:ok, boolean()} | {:error, term()}
def has_config(%__MODULE__{} = workspace) do
query_builder =
workspace.query_builder |> QB.select("hasConfig")
Client.execute(workspace.client, query_builder)
end
@doc """
A unique identifier for this Workspace.
"""
@spec id(t()) :: {:ok, Dagger.WorkspaceID.t()} | {:error, term()}
def id(%__MODULE__{} = workspace) do
query_builder =
workspace.query_builder |> QB.select("id")
Client.execute(workspace.client, query_builder)
end
@doc """
Whether .dagger/config.toml exists.
"""
@spec initialized(t()) :: {:ok, boolean()} | {:error, term()}
def initialized(%__MODULE__{} = workspace) do
query_builder =
workspace.query_builder |> QB.select("initialized")
Client.execute(workspace.client, query_builder)
end
@doc """
Workspace directory path relative to the workspace boundary.
"""
@spec path(t()) :: {:ok, String.t()} | {:error, term()}
def path(%__MODULE__{} = workspace) do
query_builder =
workspace.query_builder |> QB.select("path")
Client.execute(workspace.client, query_builder)
end
@doc """
Return all services from modules loaded in the workspace.
"""
@spec services(t(), [{:include, [String.t()]}]) :: Dagger.UpGroup.t()
def services(%__MODULE__{} = workspace, optional_args \\ []) do
query_builder =
workspace.query_builder
|> QB.select("services")
|> QB.maybe_put_arg("include", optional_args[:include])
%Dagger.UpGroup{
query_builder: query_builder,
client: workspace.client
}
end
end
defimpl Jason.Encoder, for: Dagger.Workspace do
def encode(workspace, opts) do
{:ok, id} = Dagger.Workspace.id(workspace)
Jason.Encode.string(id, opts)
end
end
defimpl Nestru.Decoder, for: Dagger.Workspace do
def decode_fields_hint(_struct, _context, id) do
{:ok, Dagger.Client.load_workspace_from_id(Dagger.Global.dag(), id)}
end
end