Current section
Files
Jump to
Current section
Files
src/examples@secret_env.erl
-module(examples@secret_env).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/examples/secret_env.gleam").
-export([main/0]).
-file("src/examples/secret_env.gleam", 18).
-spec main() -> nil.
main() ->
dagger:connect(
fun(Client) ->
Token = case envoy_ffi:get(<<"MY_TOKEN"/utf8>>) of
{ok, Val} ->
Val;
{error, _} ->
gleam_stdlib:println_error(<<"MY_TOKEN not set"/utf8>>),
erlang:error(#{gleam_error => panic,
message => <<"`panic` expression evaluated."/utf8>>,
file => <<?FILEPATH/utf8>>,
module => <<"examples/secret_env"/utf8>>,
function => <<"main"/utf8>>,
line => 26})
end,
Secret = dagger@dsl@dag:set_secret(<<"my_token"/utf8>>, Token),
Pipeline = begin
_pipe@1 = dagger@dsl@container:container(fun(O) -> _pipe = O,
dagger@dsl@container:opt_platform(
_pipe,
<<"linux/amd64"/utf8>>
) end),
_pipe@2 = dagger@dsl@container:from(
_pipe@1,
<<"alpine:3.21"/utf8>>
),
_pipe@3 = dagger@dsl@container:with_secret_variable(
_pipe@2,
<<"MY_TOKEN"/utf8>>,
Secret
),
dagger@dsl@container:with_exec(
_pipe@3,
[<<"sh"/utf8>>,
<<"-c"/utf8>>,
<<"echo \"Token length: $(echo $MY_TOKEN | wc -c)\""/utf8>>],
fun dagger@dsl@container:none/1
)
end,
dagger@dsl@container:stdout(
Pipeline,
Client,
fun(Result) -> case Result of
{ok, Out} ->
gleam_stdlib:println(gleam@string:trim(Out));
{error, E} ->
gleam_stdlib:println_error(
<<"Pipeline failed: "/utf8,
(gleam@string:inspect(E))/binary>>
)
end end
)
end
).