Packages

A wrapper for erlexec

Retired package: Renamed - this package is now known as glexec

Current section

Files

Jump to
gleam_erlexec src gleam_erlexec.erl
Raw

src/gleam_erlexec.erl

-module(gleam_erlexec).
-compile(no_auto_import).
-export([main/0]).
-spec main() -> {ok, nil} | {error, gleam@dynamic:dynamic()}.
main() ->
{ok, Bash@1} = case gleam@erlexec:find_executable(<<"bash"/utf8>>) of
{ok, Bash} -> {ok, Bash};
_try ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try,
module => <<"gleam_erlexec"/utf8>>,
function => <<"main"/utf8>>,
line => 4})
end,
{ok, {pids, _@2, Ospid@1}} = case begin
_pipe = gleam@erlexec:new(),
_pipe@1 = gleam@erlexec:with_stdin(_pipe, stdin_pipe),
_pipe@2 = gleam@erlexec:with_stdout(_pipe@1, stdout_capture),
_pipe@3 = gleam@erlexec:with_stderr(_pipe@2, stderr_stdout),
_pipe@4 = gleam@erlexec:with_monitor(_pipe@3, true),
_pipe@5 = gleam@erlexec:with_pty(_pipe@4, true),
gleam@erlexec:run_async(
_pipe@5,
{execve, [Bash@1, <<"-c"/utf8>>, <<"echo started && cat"/utf8>>]}
)
end of
{ok, {pids, _@1, Ospid}} -> {ok, {pids, _@1, Ospid}};
_try@1 ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try@1,
module => <<"gleam_erlexec"/utf8>>,
function => <<"main"/utf8>>,
line => 6})
end,
{ok, {obtain_stdout, _@4, <<"started\r\n"/utf8>>}} = case gleam@erlexec:obtain(
500
) of
{ok, {obtain_stdout, _@3, <<"started\r\n"/utf8>>}} -> {ok,
{obtain_stdout,
_@3,
<<"started\r\n"/utf8>>}};
_try@2 ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try@2,
module => <<"gleam_erlexec"/utf8>>,
function => <<"main"/utf8>>,
line => 15})
end,
{ok, nil} = case gleam@erlexec:send(Ospid@1, <<"test\n"/utf8>>) of
{ok, nil} -> {ok, nil};
_try@3 ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try@3,
module => <<"gleam_erlexec"/utf8>>,
function => <<"main"/utf8>>,
line => 16})
end,
{ok, {obtain_stdout, _@6, <<"test\r\n"/utf8>>}} = case gleam@erlexec:obtain(
500
) of
{ok, {obtain_stdout, _@5, <<"test\r\n"/utf8>>}} -> {ok,
{obtain_stdout,
_@5,
<<"test\r\n"/utf8>>}};
_try@4 ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try@4,
module => <<"gleam_erlexec"/utf8>>,
function => <<"main"/utf8>>,
line => 17})
end,
{ok, nil} = case gleam@erlexec:kill_ospid(Ospid@1, 9) of
{ok, nil} -> {ok, nil};
_try@5 ->
erlang:error(#{gleam_error => assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _try@5,
module => <<"gleam_erlexec"/utf8>>,
function => <<"main"/utf8>>,
line => 18})
end.