Current section
Files
Jump to
Current section
Files
src/dagger@dsl@host.erl
-module(dagger@dsl@host).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/dagger/dsl/host.gleam").
-export([none/1, exclude/2, include/2, no_cache/2, gitignore/2, opt_host/2, native/2, ports/2, host/0, container_image/2, directory/3, file/3, find_up/5, id/1, service/3, tunnel/3, unix_socket/2]).
-export_type([opts/0]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
-type opts() :: {opts,
gleam@option:option(list(binary())),
gleam@option:option(list(binary())),
gleam@option:option(boolean()),
gleam@option:option(boolean()),
gleam@option:option(binary()),
gleam@option:option(boolean()),
gleam@option:option(list(dagger@dsl@types:port_forward()))}.
-file("src/dagger/dsl/host.gleam", 22).
-spec defaults() -> opts().
defaults() ->
{opts, none, none, none, none, none, none, none}.
-file("src/dagger/dsl/host.gleam", 34).
-spec none(opts()) -> opts().
none(Opts) ->
Opts.
-file("src/dagger/dsl/host.gleam", 38).
-spec exclude(opts(), list(binary())) -> opts().
exclude(Opts, Val) ->
{opts,
{some, Val},
erlang:element(3, Opts),
erlang:element(4, Opts),
erlang:element(5, Opts),
erlang:element(6, Opts),
erlang:element(7, Opts),
erlang:element(8, Opts)}.
-file("src/dagger/dsl/host.gleam", 42).
-spec include(opts(), list(binary())) -> opts().
include(Opts, Val) ->
{opts,
erlang:element(2, Opts),
{some, Val},
erlang:element(4, Opts),
erlang:element(5, Opts),
erlang:element(6, Opts),
erlang:element(7, Opts),
erlang:element(8, Opts)}.
-file("src/dagger/dsl/host.gleam", 46).
-spec no_cache(opts(), boolean()) -> opts().
no_cache(Opts, Val) ->
{opts,
erlang:element(2, Opts),
erlang:element(3, Opts),
{some, Val},
erlang:element(5, Opts),
erlang:element(6, Opts),
erlang:element(7, Opts),
erlang:element(8, Opts)}.
-file("src/dagger/dsl/host.gleam", 50).
-spec gitignore(opts(), boolean()) -> opts().
gitignore(Opts, Val) ->
{opts,
erlang:element(2, Opts),
erlang:element(3, Opts),
erlang:element(4, Opts),
{some, Val},
erlang:element(6, Opts),
erlang:element(7, Opts),
erlang:element(8, Opts)}.
-file("src/dagger/dsl/host.gleam", 54).
-spec opt_host(opts(), binary()) -> opts().
opt_host(Opts, Val) ->
{opts,
erlang:element(2, Opts),
erlang:element(3, Opts),
erlang:element(4, Opts),
erlang:element(5, Opts),
{some, Val},
erlang:element(7, Opts),
erlang:element(8, Opts)}.
-file("src/dagger/dsl/host.gleam", 58).
-spec native(opts(), boolean()) -> opts().
native(Opts, Val) ->
{opts,
erlang:element(2, Opts),
erlang:element(3, Opts),
erlang:element(4, Opts),
erlang:element(5, Opts),
erlang:element(6, Opts),
{some, Val},
erlang:element(8, Opts)}.
-file("src/dagger/dsl/host.gleam", 62).
-spec ports(opts(), list(dagger@dsl@types:port_forward())) -> opts().
ports(Opts, Val) ->
{opts,
erlang:element(2, Opts),
erlang:element(3, Opts),
erlang:element(4, Opts),
erlang:element(5, Opts),
erlang:element(6, Opts),
erlang:element(7, Opts),
{some, Val}}.
-file("src/dagger/dsl/host.gleam", 66).
-spec host() -> dagger@dsl@types:host().
host() ->
Field = {field, <<"host"/utf8>>, [], []},
{host, {pure, [Field]}}.
-file("src/dagger/dsl/host.gleam", 72).
?DOC(" Accesses a container image on the host.\n").
-spec container_image(dagger@dsl@types:host(), binary()) -> dagger@dsl@types:container().
container_image(Parent, Name) ->
Field = {field,
<<"containerImage"/utf8>>,
[{<<"name"/utf8>>, {g_string, Name}}],
[]},
New_op = begin
dagger@types:bind(
erlang:element(2, Parent),
fun(Q) -> {pure, lists:append(Q, [Field])} end
)
end,
{container, New_op}.
-file("src/dagger/dsl/host.gleam", 81).
-spec encode_directory(opts()) -> list({binary(), dagger@types:value()}).
encode_directory(Opts) ->
gleam@list:filter_map([case erlang:element(2, Opts) of
{some, Val} ->
{ok,
{<<"exclude"/utf8>>,
{g_list,
gleam@list:map(Val, fun(X) -> {g_string, X} end)}}};
none ->
{error, nil}
end, case erlang:element(3, Opts) of
{some, Val@1} ->
{ok,
{<<"include"/utf8>>,
{g_list,
gleam@list:map(
Val@1,
fun(X@1) -> {g_string, X@1} end
)}}};
none ->
{error, nil}
end, case erlang:element(4, Opts) of
{some, Val@2} ->
{ok, {<<"noCache"/utf8>>, {g_bool, Val@2}}};
none ->
{error, nil}
end, case erlang:element(5, Opts) of
{some, Val@3} ->
{ok, {<<"gitignore"/utf8>>, {g_bool, Val@3}}};
none ->
{error, nil}
end], fun(X@2) -> X@2 end).
-file("src/dagger/dsl/host.gleam", 103).
?DOC(" Accesses a directory on the host.\n").
-spec directory(dagger@dsl@types:host(), binary(), fun((opts()) -> opts())) -> dagger@dsl@types:directory().
directory(Parent, Path, With_fn) ->
Opts = With_fn(defaults()),
Field = {field,
<<"directory"/utf8>>,
lists:append(
[{<<"path"/utf8>>, {g_string, Path}}],
encode_directory(Opts)
),
[]},
New_op = begin
dagger@types:bind(
erlang:element(2, Parent),
fun(Q) -> {pure, lists:append(Q, [Field])} end
)
end,
{directory, New_op}.
-file("src/dagger/dsl/host.gleam", 113).
-spec encode_file(opts()) -> list({binary(), dagger@types:value()}).
encode_file(Opts) ->
gleam@list:filter_map([case erlang:element(4, Opts) of
{some, Val} ->
{ok, {<<"noCache"/utf8>>, {g_bool, Val}}};
none ->
{error, nil}
end], fun(X) -> X end).
-file("src/dagger/dsl/host.gleam", 123).
?DOC(" Accesses a file on the host.\n").
-spec file(dagger@dsl@types:host(), binary(), fun((opts()) -> opts())) -> dagger@dsl@types:file().
file(Parent, Path, With_fn) ->
Opts = With_fn(defaults()),
Field = {field,
<<"file"/utf8>>,
lists:append([{<<"path"/utf8>>, {g_string, Path}}], encode_file(Opts)),
[]},
New_op = begin
dagger@types:bind(
erlang:element(2, Parent),
fun(Q) -> {pure, lists:append(Q, [Field])} end
)
end,
{file, New_op}.
-file("src/dagger/dsl/host.gleam", 133).
-spec encode_find_up(opts()) -> list({binary(), dagger@types:value()}).
encode_find_up(Opts) ->
gleam@list:filter_map([case erlang:element(4, Opts) of
{some, Val} ->
{ok, {<<"noCache"/utf8>>, {g_bool, Val}}};
none ->
{error, nil}
end], fun(X) -> X end).
-file("src/dagger/dsl/host.gleam", 143).
?DOC(" Search for a file or directory by walking up the tree from system workdir. Return its relative path. If no match, return null\n").
-spec find_up(
dagger@dsl@types:host(),
binary(),
fun((opts()) -> opts()),
dagger@types:client(),
fun(({ok, binary()} | {error, dagger@types:query_error()}) -> SXY)
) -> SXY.
find_up(Parent, Name, With_fn, Client, Handler) ->
Opts = With_fn(defaults()),
Field = {field,
<<"findUp"/utf8>>,
lists:append(
[{<<"name"/utf8>>, {g_string, Name}}],
encode_find_up(Opts)
),
[]},
Op = begin
dagger@types:bind(
erlang:element(2, Parent),
fun(Q) ->
Full_query = lists:append(Q, [Field]),
{fetch,
Full_query,
{decoder, fun gleam@dynamic@decode:decode_dynamic/1},
fun(Dyn) ->
Path = dagger@types:make_path(Full_query),
case gleam@dynamic@decode:run(
Dyn,
gleam@dynamic@decode:at(
Path,
{decoder,
fun gleam@dynamic@decode:decode_string/1}
)
) of
{ok, Val} ->
{pure, {ok, Val}};
{error, _} ->
{pure,
{error, {decoding_error, <<"findUp"/utf8>>}}}
end
end}
end
)
end,
Handler(dagger@interpreter:run(Op, Client)).
-file("src/dagger/dsl/host.gleam", 165).
?DOC(" A unique identifier for this Host.\n").
-spec id(dagger@dsl@types:host()) -> dagger@dsl@types:host().
id(Parent) ->
Field = {field, <<"id"/utf8>>, [], []},
New_op = begin
dagger@types:bind(
erlang:element(2, Parent),
fun(Q) -> {pure, lists:append(Q, [Field])} end
)
end,
{host, New_op}.
-file("src/dagger/dsl/host.gleam", 174).
-spec encode_service(opts()) -> list({binary(), dagger@types:value()}).
encode_service(Opts) ->
gleam@list:filter_map([case erlang:element(6, Opts) of
{some, Val} ->
{ok, {<<"host"/utf8>>, {g_string, Val}}};
none ->
{error, nil}
end], fun(X) -> X end).
-file("src/dagger/dsl/host.gleam", 184).
?DOC(" Creates a service that forwards traffic to a specified address via the host.\n").
-spec service(
dagger@dsl@types:host(),
list(dagger@dsl@types:port_forward()),
fun((opts()) -> opts())
) -> dagger@dsl@types:service().
service(Parent, Ports, With_fn) ->
Opts = With_fn(defaults()),
Field = {field,
<<"service"/utf8>>,
lists:append(
[{<<"ports"/utf8>>,
{g_list,
gleam@list:map(
Ports,
fun(X) ->
{g_object,
dagger@dsl@types:port_forward_to_json(X)}
end
)}}],
encode_service(Opts)
),
[]},
New_op = begin
dagger@types:bind(
erlang:element(2, Parent),
fun(Q) -> {pure, lists:append(Q, [Field])} end
)
end,
{service, New_op}.
-file("src/dagger/dsl/host.gleam", 194).
-spec encode_tunnel(opts()) -> list({binary(), dagger@types:value()}).
encode_tunnel(Opts) ->
gleam@list:filter_map([case erlang:element(7, Opts) of
{some, Val} ->
{ok, {<<"native"/utf8>>, {g_bool, Val}}};
none ->
{error, nil}
end, case erlang:element(8, Opts) of
{some, Val@1} ->
{ok,
{<<"ports"/utf8>>,
{g_list,
gleam@list:map(
Val@1,
fun(X) ->
{g_object,
dagger@dsl@types:port_forward_to_json(
X
)}
end
)}}};
none ->
{error, nil}
end], fun(X@1) -> X@1 end).
-file("src/dagger/dsl/host.gleam", 208).
?DOC(" Creates a tunnel that forwards traffic from the host to a service.\n").
-spec tunnel(
dagger@dsl@types:host(),
dagger@dsl@types:service(),
fun((opts()) -> opts())
) -> dagger@dsl@types:service().
tunnel(Parent, Service, With_fn) ->
Opts = With_fn(defaults()),
Field = {field,
<<"tunnel"/utf8>>,
lists:append(
[{<<"service"/utf8>>, {g_deferred, erlang:element(2, Service)}}],
encode_tunnel(Opts)
),
[]},
New_op = begin
dagger@types:bind(
erlang:element(2, Parent),
fun(Q) -> {pure, lists:append(Q, [Field])} end
)
end,
{service, New_op}.
-file("src/dagger/dsl/host.gleam", 219).
?DOC(" Accesses a Unix socket on the host.\n").
-spec unix_socket(dagger@dsl@types:host(), binary()) -> dagger@dsl@types:socket().
unix_socket(Parent, Path) ->
Field = {field,
<<"unixSocket"/utf8>>,
[{<<"path"/utf8>>, {g_string, Path}}],
[]},
New_op = begin
dagger@types:bind(
erlang:element(2, Parent),
fun(Q) -> {pure, lists:append(Q, [Field])} end
)
end,
{socket, New_op}.