Current section
Files
Jump to
Current section
Files
src/dagger@dsl@git.erl
-module(dagger@dsl@git).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/dagger/dsl/git.gleam").
-export([none/1, opt_ssh_known_hosts/2, opt_ssh_auth_socket/2, opt_http_auth_username/2, opt_http_auth_token/2, opt_http_auth_header/2, opt_experimental_service_host/2, opt_patterns/2, opt_discard_git_dir/2, opt_depth/2, git_repository/2, branch/2, branches/4, repository_commit/2, head/1, repository_id/1, latest_version/1, repository_ref/2, tag/2, tags/4, uncommitted/1, url/3, git_ref/1, ref_commit/3, common_ancestor/2, ref_id/1, ref_ref/3, tree/2]).
-export_type([for_git_repository/0, for_tree/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_git_repository() :: any().
-type for_tree() :: any().
-opaque opts(YVS) :: {opts,
gleam@option:option(binary()),
gleam@option:option(dagger@dsl@types:socket()),
gleam@option:option(binary()),
gleam@option:option(dagger@dsl@types:secret()),
gleam@option:option(dagger@dsl@types:secret()),
gleam@option:option(dagger@dsl@types:service()),
gleam@option:option(list(binary())),
gleam@option:option(boolean()),
gleam@option:option(integer())} |
{gleam_phantom, YVS}.
-file("src/dagger/dsl/git.gleam", 27).
-spec defaults() -> opts(any()).
defaults() ->
{opts, none, none, none, none, none, none, none, none, none}.
-file("src/dagger/dsl/git.gleam", 41).
-spec none(opts(YVV)) -> opts(YVV).
none(Opts) ->
Opts.
-file("src/dagger/dsl/git.gleam", 45).
-spec opt_ssh_known_hosts(opts(for_git_repository()), binary()) -> opts(for_git_repository()).
opt_ssh_known_hosts(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)}.
-file("src/dagger/dsl/git.gleam", 49).
-spec opt_ssh_auth_socket(opts(for_git_repository()), dagger@dsl@types:socket()) -> opts(for_git_repository()).
opt_ssh_auth_socket(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)}.
-file("src/dagger/dsl/git.gleam", 53).
-spec opt_http_auth_username(opts(for_git_repository()), binary()) -> opts(for_git_repository()).
opt_http_auth_username(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)}.
-file("src/dagger/dsl/git.gleam", 57).
-spec opt_http_auth_token(opts(for_git_repository()), dagger@dsl@types:secret()) -> opts(for_git_repository()).
opt_http_auth_token(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)}.
-file("src/dagger/dsl/git.gleam", 61).
-spec opt_http_auth_header(
opts(for_git_repository()),
dagger@dsl@types:secret()
) -> opts(for_git_repository()).
opt_http_auth_header(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)}.
-file("src/dagger/dsl/git.gleam", 65).
-spec opt_experimental_service_host(
opts(for_git_repository()),
dagger@dsl@types:service()
) -> opts(for_git_repository()).
opt_experimental_service_host(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)}.
-file("src/dagger/dsl/git.gleam", 69).
-spec opt_patterns(opts(YWK), list(binary())) -> opts(YWK).
opt_patterns(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)}.
-file("src/dagger/dsl/git.gleam", 73).
-spec opt_discard_git_dir(opts(for_tree()), boolean()) -> opts(for_tree()).
opt_discard_git_dir(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)}.
-file("src/dagger/dsl/git.gleam", 77).
-spec opt_depth(opts(for_tree()), integer()) -> opts(for_tree()).
opt_depth(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}}.
-file("src/dagger/dsl/git.gleam", 81).
-spec encode_git_repository(opts(any())) -> list({binary(),
dagger@types:value()}).
encode_git_repository(Opts) ->
gleam@list:filter_map([case erlang:element(2, Opts) of
{some, Val} ->
{ok, {<<"sshKnownHosts"/utf8>>, {g_string, Val}}};
none ->
{error, nil}
end, case erlang:element(3, Opts) of
{some, Val@1} ->
{ok,
{<<"sshAuthSocket"/utf8>>,
{g_deferred, erlang:element(2, Val@1)}}};
none ->
{error, nil}
end, case erlang:element(4, Opts) of
{some, Val@2} ->
{ok, {<<"httpAuthUsername"/utf8>>, {g_string, Val@2}}};
none ->
{error, nil}
end, case erlang:element(5, Opts) of
{some, Val@3} ->
{ok,
{<<"httpAuthToken"/utf8>>,
{g_deferred, erlang:element(2, Val@3)}}};
none ->
{error, nil}
end, case erlang:element(6, Opts) of
{some, Val@4} ->
{ok,
{<<"httpAuthHeader"/utf8>>,
{g_deferred, erlang:element(2, Val@4)}}};
none ->
{error, nil}
end, case erlang:element(7, Opts) of
{some, Val@5} ->
{ok,
{<<"experimentalServiceHost"/utf8>>,
{g_deferred, erlang:element(2, Val@5)}}};
none ->
{error, nil}
end], fun(X) -> X end).
-file("src/dagger/dsl/git.gleam", 110).
-spec git_repository(
binary(),
fun((opts(for_git_repository())) -> opts(for_git_repository()))
) -> dagger@dsl@types:git_repository().
git_repository(Url, With_fn) ->
Opts = With_fn(defaults()),
Field = {field,
<<"git"/utf8>>,
lists:append(
[{<<"url"/utf8>>, {g_string, Url}}],
encode_git_repository(Opts)
),
[]},
{git_repository, {pure, [Field]}}.
-file("src/dagger/dsl/git.gleam", 117).
?DOC(" Returns details of a branch.\n").
-spec branch(dagger@dsl@types:git_repository(), binary()) -> dagger@dsl@types:git_ref().
branch(Parent, Name) ->
Field = {field,
<<"branch"/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,
{git_ref, New_op}.
-file("src/dagger/dsl/git.gleam", 126).
-spec encode_branches(opts(any())) -> list({binary(), dagger@types:value()}).
encode_branches(Opts) ->
gleam@list:filter_map([case erlang:element(8, Opts) of
{some, Val} ->
{ok,
{<<"patterns"/utf8>>,
{g_list,
gleam@list:map(Val, fun(X) -> {g_string, X} end)}}};
none ->
{error, nil}
end], fun(X@1) -> X@1 end).
-file("src/dagger/dsl/git.gleam", 136).
?DOC(" branches that match any of the given glob patterns.\n").
-spec branches(
dagger@dsl@types:git_repository(),
fun((opts(YXA)) -> opts(YXA)),
dagger@types:client(),
fun(({ok, list(binary())} | {error, dagger@types:query_error()}) -> YXA)
) -> YXA.
branches(Parent, With_fn, Client, Handler) ->
Opts = With_fn(defaults()),
Field = {field, <<"branches"/utf8>>, encode_branches(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,
gleam@dynamic@decode:list(
{decoder,
fun gleam@dynamic@decode:decode_string/1}
)
)
) of
{ok, Val} ->
{pure, {ok, Val}};
{error, _} ->
{pure,
{error,
{decoding_error, <<"branches"/utf8>>}}}
end
end}
end
)
end,
Handler(dagger@interpreter:run(Op, Client)).
-file("src/dagger/dsl/git.gleam", 158).
?DOC(" Returns details of a commit.\n").
-spec repository_commit(dagger@dsl@types:git_repository(), binary()) -> dagger@dsl@types:git_ref().
repository_commit(Parent, Id) ->
Field = {field, <<"commit"/utf8>>, [{<<"id"/utf8>>, {g_string, Id}}], []},
New_op = begin
dagger@types:bind(
erlang:element(2, Parent),
fun(Q) -> {pure, lists:append(Q, [Field])} end
)
end,
{git_ref, New_op}.
-file("src/dagger/dsl/git.gleam", 168).
?DOC(" Returns details for HEAD.\n").
-spec head(dagger@dsl@types:git_repository()) -> dagger@dsl@types:git_ref().
head(Parent) ->
Field = {field, <<"head"/utf8>>, [], []},
New_op = begin
dagger@types:bind(
erlang:element(2, Parent),
fun(Q) -> {pure, lists:append(Q, [Field])} end
)
end,
{git_ref, New_op}.
-file("src/dagger/dsl/git.gleam", 178).
?DOC(" A unique identifier for this GitRepository.\n").
-spec repository_id(dagger@dsl@types:git_repository()) -> dagger@dsl@types:git_repository().
repository_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,
{git_repository, New_op}.
-file("src/dagger/dsl/git.gleam", 188).
?DOC(" Returns details for the latest semver tag.\n").
-spec latest_version(dagger@dsl@types:git_repository()) -> dagger@dsl@types:git_ref().
latest_version(Parent) ->
Field = {field, <<"latestVersion"/utf8>>, [], []},
New_op = begin
dagger@types:bind(
erlang:element(2, Parent),
fun(Q) -> {pure, lists:append(Q, [Field])} end
)
end,
{git_ref, New_op}.
-file("src/dagger/dsl/git.gleam", 198).
?DOC(" Returns details of a ref.\n").
-spec repository_ref(dagger@dsl@types:git_repository(), binary()) -> dagger@dsl@types:git_ref().
repository_ref(Parent, Name) ->
Field = {field, <<"ref"/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,
{git_ref, New_op}.
-file("src/dagger/dsl/git.gleam", 208).
?DOC(" Returns details of a tag.\n").
-spec tag(dagger@dsl@types:git_repository(), binary()) -> dagger@dsl@types:git_ref().
tag(Parent, Name) ->
Field = {field, <<"tag"/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,
{git_ref, New_op}.
-file("src/dagger/dsl/git.gleam", 217).
-spec encode_tags(opts(any())) -> list({binary(), dagger@types:value()}).
encode_tags(Opts) ->
gleam@list:filter_map([case erlang:element(8, Opts) of
{some, Val} ->
{ok,
{<<"patterns"/utf8>>,
{g_list,
gleam@list:map(Val, fun(X) -> {g_string, X} end)}}};
none ->
{error, nil}
end], fun(X@1) -> X@1 end).
-file("src/dagger/dsl/git.gleam", 227).
?DOC(" tags that match any of the given glob patterns.\n").
-spec tags(
dagger@dsl@types:git_repository(),
fun((opts(YXI)) -> opts(YXI)),
dagger@types:client(),
fun(({ok, list(binary())} | {error, dagger@types:query_error()}) -> YXI)
) -> YXI.
tags(Parent, With_fn, Client, Handler) ->
Opts = With_fn(defaults()),
Field = {field, <<"tags"/utf8>>, encode_tags(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,
gleam@dynamic@decode:list(
{decoder,
fun gleam@dynamic@decode:decode_string/1}
)
)
) of
{ok, Val} ->
{pure, {ok, Val}};
{error, _} ->
{pure,
{error, {decoding_error, <<"tags"/utf8>>}}}
end
end}
end
)
end,
Handler(dagger@interpreter:run(Op, Client)).
-file("src/dagger/dsl/git.gleam", 249).
?DOC(" Returns the changeset of uncommitted changes in the git repository.\n").
-spec uncommitted(dagger@dsl@types:git_repository()) -> dagger@dsl@types:changeset().
uncommitted(Parent) ->
Field = {field, <<"uncommitted"/utf8>>, [], []},
New_op = begin
dagger@types:bind(
erlang:element(2, Parent),
fun(Q) -> {pure, lists:append(Q, [Field])} end
)
end,
{changeset, New_op}.
-file("src/dagger/dsl/git.gleam", 259).
?DOC(" The URL of the git repository.\n").
-spec url(
dagger@dsl@types:git_repository(),
dagger@types:client(),
fun(({ok, binary()} | {error, dagger@types:query_error()}) -> YXO)
) -> YXO.
url(Parent, Client, Handler) ->
Field = {field, <<"url"/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, <<"url"/utf8>>}}}
end
end}
end
)
end,
Handler(dagger@interpreter:run(Op, Client)).
-file("src/dagger/dsl/git.gleam", 279).
-spec git_ref(dagger@dsl@types:git_ref()) -> dagger@dsl@types:git_ref().
git_ref(Id) ->
Field = {field,
<<"loadGitRefFromID"/utf8>>,
[{<<"id"/utf8>>, {g_deferred, erlang:element(2, Id)}}],
[]},
{git_ref, {pure, [Field]}}.
-file("src/dagger/dsl/git.gleam", 285).
?DOC(" The resolved commit id at this ref.\n").
-spec ref_commit(
dagger@dsl@types:git_ref(),
dagger@types:client(),
fun(({ok, binary()} | {error, dagger@types:query_error()}) -> YXQ)
) -> YXQ.
ref_commit(Parent, Client, Handler) ->
Field = {field, <<"commit"/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, <<"commit"/utf8>>}}}
end
end}
end
)
end,
Handler(dagger@interpreter:run(Op, Client)).
-file("src/dagger/dsl/git.gleam", 306).
?DOC(" Find the best common ancestor between this ref and another ref.\n").
-spec common_ancestor(dagger@dsl@types:git_ref(), dagger@dsl@types:git_ref()) -> dagger@dsl@types:git_ref().
common_ancestor(Parent, Other) ->
Field = {field,
<<"commonAncestor"/utf8>>,
[{<<"other"/utf8>>, {g_deferred, erlang:element(2, Other)}}],
[]},
New_op = begin
dagger@types:bind(
erlang:element(2, Parent),
fun(Q) -> {pure, lists:append(Q, [Field])} end
)
end,
{git_ref, New_op}.
-file("src/dagger/dsl/git.gleam", 316).
?DOC(" A unique identifier for this GitRef.\n").
-spec ref_id(dagger@dsl@types:git_ref()) -> dagger@dsl@types:git_ref().
ref_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,
{git_ref, New_op}.
-file("src/dagger/dsl/git.gleam", 326).
?DOC(" The resolved ref name at this ref.\n").
-spec ref_ref(
dagger@dsl@types:git_ref(),
dagger@types:client(),
fun(({ok, binary()} | {error, dagger@types:query_error()}) -> YXS)
) -> YXS.
ref_ref(Parent, Client, Handler) ->
Field = {field, <<"ref"/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, <<"ref"/utf8>>}}}
end
end}
end
)
end,
Handler(dagger@interpreter:run(Op, Client)).
-file("src/dagger/dsl/git.gleam", 346).
-spec encode_tree(opts(any())) -> list({binary(), dagger@types:value()}).
encode_tree(Opts) ->
gleam@list:filter_map([case erlang:element(9, Opts) of
{some, Val} ->
{ok, {<<"discardGitDir"/utf8>>, {g_bool, Val}}};
none ->
{error, nil}
end, case erlang:element(10, Opts) of
{some, Val@1} ->
{ok, {<<"depth"/utf8>>, {g_int, Val@1}}};
none ->
{error, nil}
end], fun(X) -> X end).
-file("src/dagger/dsl/git.gleam", 360).
?DOC(" The filesystem tree at this ref.\n").
-spec tree(
dagger@dsl@types:git_ref(),
fun((opts(for_tree())) -> opts(for_tree()))
) -> dagger@dsl@types:directory().
tree(Parent, With_fn) ->
Opts = With_fn(defaults()),
Field = {field, <<"tree"/utf8>>, encode_tree(Opts), []},
New_op = begin
dagger@types:bind(
erlang:element(2, Parent),
fun(Q) -> {pure, lists:append(Q, [Field])} end
)
end,
{directory, New_op}.