Current section
Files
Jump to
Current section
Files
src/dagger@dsl@file.erl
-module(dagger@dsl@file).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/dagger/dsl/file.gleam").
-export([none/1, opt_permissions/2, opt_offset_lines/2, opt_limit_lines/2, opt_exclude_metadata/2, opt_allow_parent_dir_path/2, opt_literal/2, opt_multiline/2, opt_dotall/2, opt_insensitive/2, opt_skip_ignored/2, opt_skip_hidden/2, opt_files_only/2, opt_limit/2, opt_paths/2, opt_globs/2, opt_all/2, opt_first_from/2, file/3, as_env_file/1, as_j_s_o_n/1, chown/2, contents/4, digest/4, export/5, id/1, name/3, search/6, size/3, stat/1, sync/1, with_name/2, with_replaced/4, with_timestamps/2]).
-export_type([for_with_replaced/0, for_search/0, for_export/0, for_digest/0, for_contents/0, for_file/0, opts/1]).
-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 for_with_replaced() :: any().
-type for_search() :: any().
-type for_export() :: any().
-type for_digest() :: any().
-type for_contents() :: any().
-type for_file() :: any().
-opaque opts(VQO) :: {opts,
gleam@option:option(integer()),
gleam@option:option(integer()),
gleam@option:option(integer()),
gleam@option:option(boolean()),
gleam@option:option(boolean()),
gleam@option:option(boolean()),
gleam@option:option(boolean()),
gleam@option:option(boolean()),
gleam@option:option(boolean()),
gleam@option:option(boolean()),
gleam@option:option(boolean()),
gleam@option:option(boolean()),
gleam@option:option(integer()),
gleam@option:option(list(binary())),
gleam@option:option(list(binary())),
gleam@option:option(boolean()),
gleam@option:option(integer())} |
{gleam_phantom, VQO}.
-file("src/dagger/dsl/file.gleam", 39).
-spec defaults() -> opts(any()).
defaults() ->
{opts,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none,
none}.
-file("src/dagger/dsl/file.gleam", 61).
-spec none(opts(VQR)) -> opts(VQR).
none(Opts) ->
Opts.
-file("src/dagger/dsl/file.gleam", 65).
-spec opt_permissions(opts(for_file()), integer()) -> opts(for_file()).
opt_permissions(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),
erlang:element(9, Opts),
erlang:element(10, Opts),
erlang:element(11, Opts),
erlang:element(12, Opts),
erlang:element(13, Opts),
erlang:element(14, Opts),
erlang:element(15, Opts),
erlang:element(16, Opts),
erlang:element(17, Opts),
erlang:element(18, Opts)}.
-file("src/dagger/dsl/file.gleam", 69).
-spec opt_offset_lines(opts(for_contents()), integer()) -> opts(for_contents()).
opt_offset_lines(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),
erlang:element(9, Opts),
erlang:element(10, Opts),
erlang:element(11, Opts),
erlang:element(12, Opts),
erlang:element(13, Opts),
erlang:element(14, Opts),
erlang:element(15, Opts),
erlang:element(16, Opts),
erlang:element(17, Opts),
erlang:element(18, Opts)}.
-file("src/dagger/dsl/file.gleam", 73).
-spec opt_limit_lines(opts(for_contents()), integer()) -> opts(for_contents()).
opt_limit_lines(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),
erlang:element(9, Opts),
erlang:element(10, Opts),
erlang:element(11, Opts),
erlang:element(12, Opts),
erlang:element(13, Opts),
erlang:element(14, Opts),
erlang:element(15, Opts),
erlang:element(16, Opts),
erlang:element(17, Opts),
erlang:element(18, Opts)}.
-file("src/dagger/dsl/file.gleam", 77).
-spec opt_exclude_metadata(opts(for_digest()), boolean()) -> opts(for_digest()).
opt_exclude_metadata(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),
erlang:element(9, Opts),
erlang:element(10, Opts),
erlang:element(11, Opts),
erlang:element(12, Opts),
erlang:element(13, Opts),
erlang:element(14, Opts),
erlang:element(15, Opts),
erlang:element(16, Opts),
erlang:element(17, Opts),
erlang:element(18, Opts)}.
-file("src/dagger/dsl/file.gleam", 81).
-spec opt_allow_parent_dir_path(opts(for_export()), boolean()) -> opts(for_export()).
opt_allow_parent_dir_path(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),
erlang:element(9, Opts),
erlang:element(10, Opts),
erlang:element(11, Opts),
erlang:element(12, Opts),
erlang:element(13, Opts),
erlang:element(14, Opts),
erlang:element(15, Opts),
erlang:element(16, Opts),
erlang:element(17, Opts),
erlang:element(18, Opts)}.
-file("src/dagger/dsl/file.gleam", 85).
-spec opt_literal(opts(for_search()), boolean()) -> opts(for_search()).
opt_literal(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),
erlang:element(9, Opts),
erlang:element(10, Opts),
erlang:element(11, Opts),
erlang:element(12, Opts),
erlang:element(13, Opts),
erlang:element(14, Opts),
erlang:element(15, Opts),
erlang:element(16, Opts),
erlang:element(17, Opts),
erlang:element(18, Opts)}.
-file("src/dagger/dsl/file.gleam", 89).
-spec opt_multiline(opts(for_search()), boolean()) -> opts(for_search()).
opt_multiline(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},
erlang:element(9, Opts),
erlang:element(10, Opts),
erlang:element(11, Opts),
erlang:element(12, Opts),
erlang:element(13, Opts),
erlang:element(14, Opts),
erlang:element(15, Opts),
erlang:element(16, Opts),
erlang:element(17, Opts),
erlang:element(18, Opts)}.
-file("src/dagger/dsl/file.gleam", 93).
-spec opt_dotall(opts(for_search()), boolean()) -> opts(for_search()).
opt_dotall(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),
erlang:element(8, Opts),
{some, Val},
erlang:element(10, Opts),
erlang:element(11, Opts),
erlang:element(12, Opts),
erlang:element(13, Opts),
erlang:element(14, Opts),
erlang:element(15, Opts),
erlang:element(16, Opts),
erlang:element(17, Opts),
erlang:element(18, Opts)}.
-file("src/dagger/dsl/file.gleam", 97).
-spec opt_insensitive(opts(for_search()), boolean()) -> opts(for_search()).
opt_insensitive(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),
erlang:element(8, Opts),
erlang:element(9, Opts),
{some, Val},
erlang:element(11, Opts),
erlang:element(12, Opts),
erlang:element(13, Opts),
erlang:element(14, Opts),
erlang:element(15, Opts),
erlang:element(16, Opts),
erlang:element(17, Opts),
erlang:element(18, Opts)}.
-file("src/dagger/dsl/file.gleam", 101).
-spec opt_skip_ignored(opts(for_search()), boolean()) -> opts(for_search()).
opt_skip_ignored(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),
erlang:element(8, Opts),
erlang:element(9, Opts),
erlang:element(10, Opts),
{some, Val},
erlang:element(12, Opts),
erlang:element(13, Opts),
erlang:element(14, Opts),
erlang:element(15, Opts),
erlang:element(16, Opts),
erlang:element(17, Opts),
erlang:element(18, Opts)}.
-file("src/dagger/dsl/file.gleam", 105).
-spec opt_skip_hidden(opts(for_search()), boolean()) -> opts(for_search()).
opt_skip_hidden(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),
erlang:element(8, Opts),
erlang:element(9, Opts),
erlang:element(10, Opts),
erlang:element(11, Opts),
{some, Val},
erlang:element(13, Opts),
erlang:element(14, Opts),
erlang:element(15, Opts),
erlang:element(16, Opts),
erlang:element(17, Opts),
erlang:element(18, Opts)}.
-file("src/dagger/dsl/file.gleam", 109).
-spec opt_files_only(opts(for_search()), boolean()) -> opts(for_search()).
opt_files_only(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),
erlang:element(8, Opts),
erlang:element(9, Opts),
erlang:element(10, Opts),
erlang:element(11, Opts),
erlang:element(12, Opts),
{some, Val},
erlang:element(14, Opts),
erlang:element(15, Opts),
erlang:element(16, Opts),
erlang:element(17, Opts),
erlang:element(18, Opts)}.
-file("src/dagger/dsl/file.gleam", 113).
-spec opt_limit(opts(for_search()), integer()) -> opts(for_search()).
opt_limit(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),
erlang:element(8, Opts),
erlang:element(9, Opts),
erlang:element(10, Opts),
erlang:element(11, Opts),
erlang:element(12, Opts),
erlang:element(13, Opts),
{some, Val},
erlang:element(15, Opts),
erlang:element(16, Opts),
erlang:element(17, Opts),
erlang:element(18, Opts)}.
-file("src/dagger/dsl/file.gleam", 117).
-spec opt_paths(opts(for_search()), list(binary())) -> opts(for_search()).
opt_paths(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),
erlang:element(8, Opts),
erlang:element(9, Opts),
erlang:element(10, Opts),
erlang:element(11, Opts),
erlang:element(12, Opts),
erlang:element(13, Opts),
erlang:element(14, Opts),
{some, Val},
erlang:element(16, Opts),
erlang:element(17, Opts),
erlang:element(18, Opts)}.
-file("src/dagger/dsl/file.gleam", 121).
-spec opt_globs(opts(for_search()), list(binary())) -> opts(for_search()).
opt_globs(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),
erlang:element(8, Opts),
erlang:element(9, Opts),
erlang:element(10, Opts),
erlang:element(11, Opts),
erlang:element(12, Opts),
erlang:element(13, Opts),
erlang:element(14, Opts),
erlang:element(15, Opts),
{some, Val},
erlang:element(17, Opts),
erlang:element(18, Opts)}.
-file("src/dagger/dsl/file.gleam", 125).
-spec opt_all(opts(for_with_replaced()), boolean()) -> opts(for_with_replaced()).
opt_all(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),
erlang:element(8, Opts),
erlang:element(9, Opts),
erlang:element(10, Opts),
erlang:element(11, Opts),
erlang:element(12, Opts),
erlang:element(13, Opts),
erlang:element(14, Opts),
erlang:element(15, Opts),
erlang:element(16, Opts),
{some, Val},
erlang:element(18, Opts)}.
-file("src/dagger/dsl/file.gleam", 129).
-spec opt_first_from(opts(for_with_replaced()), integer()) -> opts(for_with_replaced()).
opt_first_from(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),
erlang:element(8, Opts),
erlang:element(9, Opts),
erlang:element(10, Opts),
erlang:element(11, Opts),
erlang:element(12, Opts),
erlang:element(13, Opts),
erlang:element(14, Opts),
erlang:element(15, Opts),
erlang:element(16, Opts),
erlang:element(17, Opts),
{some, Val}}.
-file("src/dagger/dsl/file.gleam", 133).
-spec encode_file(opts(any())) -> list({binary(), dagger@types:value()}).
encode_file(Opts) ->
gleam@list:filter_map([case erlang:element(2, Opts) of
{some, Val} ->
{ok, {<<"permissions"/utf8>>, {g_int, Val}}};
none ->
{error, nil}
end], fun(X) -> X end).
-file("src/dagger/dsl/file.gleam", 142).
-spec file(binary(), binary(), fun((opts(for_file())) -> opts(for_file()))) -> dagger@dsl@types:file().
file(Name, Contents, With_fn) ->
Opts = With_fn(defaults()),
Field = {field,
<<"file"/utf8>>,
lists:append(
[{<<"name"/utf8>>, {g_string, Name}},
{<<"contents"/utf8>>, {g_string, Contents}}],
encode_file(Opts)
),
[]},
{file, {pure, [Field]}}.
-file("src/dagger/dsl/file.gleam", 149).
?DOC(" Parse as an env file\n").
-spec as_env_file(dagger@dsl@types:file()) -> dagger@dsl@types:env_file().
as_env_file(Parent) ->
Field = {field, <<"asEnvFile"/utf8>>, [], []},
New_op = begin
dagger@types:bind(
erlang:element(2, Parent),
fun(Q) -> {pure, lists:append(Q, [Field])} end
)
end,
{env_file, New_op}.
-file("src/dagger/dsl/file.gleam", 159).
?DOC(" Parse the file contents as JSON.\n").
-spec as_j_s_o_n(dagger@dsl@types:file()) -> dagger@dsl@types:j_s_o_n_value().
as_j_s_o_n(Parent) ->
Field = {field, <<"asJSON"/utf8>>, [], []},
New_op = begin
dagger@types:bind(
erlang:element(2, Parent),
fun(Q) -> {pure, lists:append(Q, [Field])} end
)
end,
{j_s_o_n_value, New_op}.
-file("src/dagger/dsl/file.gleam", 169).
?DOC(" Change the owner of the file recursively.\n").
-spec chown(dagger@dsl@types:file(), binary()) -> dagger@dsl@types:file().
chown(Parent, Owner) ->
Field = {field,
<<"chown"/utf8>>,
[{<<"owner"/utf8>>, {g_string, Owner}}],
[]},
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/file.gleam", 178).
-spec encode_contents(opts(any())) -> list({binary(), dagger@types:value()}).
encode_contents(Opts) ->
gleam@list:filter_map([case erlang:element(3, Opts) of
{some, Val} ->
{ok, {<<"offsetLines"/utf8>>, {g_int, Val}}};
none ->
{error, nil}
end, case erlang:element(4, Opts) of
{some, Val@1} ->
{ok, {<<"limitLines"/utf8>>, {g_int, Val@1}}};
none ->
{error, nil}
end], fun(X) -> X end).
-file("src/dagger/dsl/file.gleam", 192).
?DOC(" Retrieves the contents of the file.\n").
-spec contents(
dagger@dsl@types:file(),
fun((opts(for_contents())) -> opts(for_contents())),
dagger@types:client(),
fun(({ok, binary()} | {error, dagger@types:query_error()}) -> VSP)
) -> VSP.
contents(Parent, With_fn, Client, Handler) ->
Opts = With_fn(defaults()),
Field = {field, <<"contents"/utf8>>, encode_contents(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, <<"contents"/utf8>>}}}
end
end}
end
)
end,
Handler(dagger@interpreter:run(Op, Client)).
-file("src/dagger/dsl/file.gleam", 213).
-spec encode_digest(opts(any())) -> list({binary(), dagger@types:value()}).
encode_digest(Opts) ->
gleam@list:filter_map([case erlang:element(5, Opts) of
{some, Val} ->
{ok, {<<"excludeMetadata"/utf8>>, {g_bool, Val}}};
none ->
{error, nil}
end], fun(X) -> X end).
-file("src/dagger/dsl/file.gleam", 223).
?DOC(" Return the file'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.\n").
-spec digest(
dagger@dsl@types:file(),
fun((opts(for_digest())) -> opts(for_digest())),
dagger@types:client(),
fun(({ok, binary()} | {error, dagger@types:query_error()}) -> VSW)
) -> VSW.
digest(Parent, With_fn, Client, Handler) ->
Opts = With_fn(defaults()),
Field = {field, <<"digest"/utf8>>, encode_digest(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, <<"digest"/utf8>>}}}
end
end}
end
)
end,
Handler(dagger@interpreter:run(Op, Client)).
-file("src/dagger/dsl/file.gleam", 244).
-spec encode_export(opts(any())) -> list({binary(), dagger@types:value()}).
encode_export(Opts) ->
gleam@list:filter_map([case erlang:element(6, Opts) of
{some, Val} ->
{ok, {<<"allowParentDirPath"/utf8>>, {g_bool, Val}}};
none ->
{error, nil}
end], fun(X) -> X end).
-file("src/dagger/dsl/file.gleam", 254).
?DOC(" Writes the file to a file path on the host.\n").
-spec export(
dagger@dsl@types:file(),
binary(),
fun((opts(for_export())) -> opts(for_export())),
dagger@types:client(),
fun(({ok, binary()} | {error, dagger@types:query_error()}) -> VTD)
) -> VTD.
export(Parent, Path, With_fn, Client, Handler) ->
Opts = With_fn(defaults()),
Field = {field,
<<"export"/utf8>>,
lists:append([{<<"path"/utf8>>, {g_string, Path}}], encode_export(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@1 = dagger@types:make_path(Full_query),
case gleam@dynamic@decode:run(
Dyn,
gleam@dynamic@decode:at(
Path@1,
{decoder,
fun gleam@dynamic@decode:decode_string/1}
)
) of
{ok, Val} ->
{pure, {ok, Val}};
{error, _} ->
{pure,
{error, {decoding_error, <<"export"/utf8>>}}}
end
end}
end
)
end,
Handler(dagger@interpreter:run(Op, Client)).
-file("src/dagger/dsl/file.gleam", 276).
?DOC(" A unique identifier for this File.\n").
-spec id(dagger@dsl@types:file()) -> dagger@dsl@types:file().
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,
{file, New_op}.
-file("src/dagger/dsl/file.gleam", 286).
?DOC(" Retrieves the name of the file.\n").
-spec name(
dagger@dsl@types:file(),
dagger@types:client(),
fun(({ok, binary()} | {error, dagger@types:query_error()}) -> VTF)
) -> VTF.
name(Parent, Client, Handler) ->
Field = {field, <<"name"/utf8>>, [], []},
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, <<"name"/utf8>>}}}
end
end}
end
)
end,
Handler(dagger@interpreter:run(Op, Client)).
-file("src/dagger/dsl/file.gleam", 306).
-spec encode_search(opts(any())) -> list({binary(), dagger@types:value()}).
encode_search(Opts) ->
gleam@list:filter_map([case erlang:element(7, Opts) of
{some, Val} ->
{ok, {<<"literal"/utf8>>, {g_bool, Val}}};
none ->
{error, nil}
end, case erlang:element(8, Opts) of
{some, Val@1} ->
{ok, {<<"multiline"/utf8>>, {g_bool, Val@1}}};
none ->
{error, nil}
end, case erlang:element(9, Opts) of
{some, Val@2} ->
{ok, {<<"dotall"/utf8>>, {g_bool, Val@2}}};
none ->
{error, nil}
end, case erlang:element(10, Opts) of
{some, Val@3} ->
{ok, {<<"insensitive"/utf8>>, {g_bool, Val@3}}};
none ->
{error, nil}
end, case erlang:element(11, Opts) of
{some, Val@4} ->
{ok, {<<"skipIgnored"/utf8>>, {g_bool, Val@4}}};
none ->
{error, nil}
end, case erlang:element(12, Opts) of
{some, Val@5} ->
{ok, {<<"skipHidden"/utf8>>, {g_bool, Val@5}}};
none ->
{error, nil}
end, case erlang:element(13, Opts) of
{some, Val@6} ->
{ok, {<<"filesOnly"/utf8>>, {g_bool, Val@6}}};
none ->
{error, nil}
end, case erlang:element(14, Opts) of
{some, Val@7} ->
{ok, {<<"limit"/utf8>>, {g_int, Val@7}}};
none ->
{error, nil}
end, case erlang:element(15, Opts) of
{some, Val@8} ->
{ok,
{<<"paths"/utf8>>,
{g_list,
gleam@list:map(
Val@8,
fun(X) -> {g_string, X} end
)}}};
none ->
{error, nil}
end, case erlang:element(16, Opts) of
{some, Val@9} ->
{ok,
{<<"globs"/utf8>>,
{g_list,
gleam@list:map(
Val@9,
fun(X@1) -> {g_string, X@1} end
)}}};
none ->
{error, nil}
end], fun(X@2) -> X@2 end).
-file("src/dagger/dsl/file.gleam", 353).
?DOC(
" Searches for content matching the given regular expression or literal string.\n"
" Uses Rust regex syntax; escape literal ., [, ], {, }, | with backslashes.\n"
).
-spec search(
dagger@dsl@types:file(),
binary(),
fun((opts(for_search())) -> opts(for_search())),
fun((dagger@dsl@types:search_result()) -> list(dagger@types:field())),
dagger@types:client(),
fun(({ok, list(dagger@dsl@types:search_result())} |
{error, dagger@types:query_error()}) -> VTO)
) -> VTO.
search(Parent, Pattern, With_fn, Select, Client, Handler) ->
Opts = With_fn(defaults()),
Subfields = Select({search_result, {pure, []}}),
Field = {field,
<<"search"/utf8>>,
lists:append(
[{<<"pattern"/utf8>>, {g_string, Pattern}}],
encode_search(Opts)
),
Subfields},
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,
gleam@dynamic@decode:list(
{decoder,
fun gleam@dynamic@decode:decode_dynamic/1}
)
)
) of
{ok, Items} ->
{pure,
{ok,
gleam@list:map(
Items,
fun(_) ->
{search_result,
{pure, Full_query}}
end
)}};
{error, _} ->
{pure,
{error, {decoding_error, <<"search"/utf8>>}}}
end
end}
end
)
end,
Handler(dagger@interpreter:run(Op, Client)).
-file("src/dagger/dsl/file.gleam", 376).
?DOC(" Retrieves the size of the file, in bytes.\n").
-spec size(
dagger@dsl@types:file(),
dagger@types:client(),
fun(({ok, integer()} | {error, dagger@types:query_error()}) -> VTQ)
) -> VTQ.
size(Parent, Client, Handler) ->
Field = {field, <<"size"/utf8>>, [], []},
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_int/1}
)
) of
{ok, Val} ->
{pure, {ok, Val}};
{error, _} ->
{pure,
{error, {decoding_error, <<"size"/utf8>>}}}
end
end}
end
)
end,
Handler(dagger@interpreter:run(Op, Client)).
-file("src/dagger/dsl/file.gleam", 397).
?DOC(" Return file status\n").
-spec stat(dagger@dsl@types:file()) -> dagger@dsl@types:stat().
stat(Parent) ->
Field = {field, <<"stat"/utf8>>, [], []},
New_op = begin
dagger@types:bind(
erlang:element(2, Parent),
fun(Q) -> {pure, lists:append(Q, [Field])} end
)
end,
{stat, New_op}.
-file("src/dagger/dsl/file.gleam", 407).
?DOC(" Force evaluation in the engine.\n").
-spec sync(dagger@dsl@types:file()) -> dagger@dsl@types:file().
sync(Parent) ->
Field = {field, <<"sync"/utf8>>, [], []},
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/file.gleam", 417).
?DOC(" Retrieves this file with its name set to the given name.\n").
-spec with_name(dagger@dsl@types:file(), binary()) -> dagger@dsl@types:file().
with_name(Parent, Name) ->
Field = {field,
<<"withName"/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,
{file, New_op}.
-file("src/dagger/dsl/file.gleam", 426).
-spec encode_with_replaced(opts(any())) -> list({binary(), dagger@types:value()}).
encode_with_replaced(Opts) ->
gleam@list:filter_map([case erlang:element(17, Opts) of
{some, Val} ->
{ok, {<<"all"/utf8>>, {g_bool, Val}}};
none ->
{error, nil}
end, case erlang:element(18, Opts) of
{some, Val@1} ->
{ok, {<<"firstFrom"/utf8>>, {g_int, Val@1}}};
none ->
{error, nil}
end], fun(X) -> X end).
-file("src/dagger/dsl/file.gleam", 444).
?DOC(
" Retrieves the file with content replaced with the given text.\n"
" If 'all' is true, all occurrences of the pattern will be replaced.\n"
" If 'firstAfter' is specified, only the first match starting at the specified line will be replaced.\n"
" If neither are specified, and there are multiple matches for the pattern, this will error.\n"
" If there are no matches for the pattern, this will error.\n"
).
-spec with_replaced(
dagger@dsl@types:file(),
binary(),
binary(),
fun((opts(for_with_replaced())) -> opts(for_with_replaced()))
) -> dagger@dsl@types:file().
with_replaced(Parent, Search, Replacement, With_fn) ->
Opts = With_fn(defaults()),
Field = {field,
<<"withReplaced"/utf8>>,
lists:append(
[{<<"search"/utf8>>, {g_string, Search}},
{<<"replacement"/utf8>>, {g_string, Replacement}}],
encode_with_replaced(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/file.gleam", 455).
?DOC(" Retrieves this file with its created/modified timestamps set to the given time.\n").
-spec with_timestamps(dagger@dsl@types:file(), integer()) -> dagger@dsl@types:file().
with_timestamps(Parent, Timestamp) ->
Field = {field,
<<"withTimestamps"/utf8>>,
[{<<"timestamp"/utf8>>, {g_int, Timestamp}}],
[]},
New_op = begin
dagger@types:bind(
erlang:element(2, Parent),
fun(Q) -> {pure, lists:append(Q, [Field])} end
)
end,
{file, New_op}.