Packages

A gleam Wrapper for Git

Current section

Files

Jump to
ggleam src ggleam.erl
Raw

src/ggleam.erl

-module(ggleam).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([clone_repo/2, pull_all/1, delete_repo/2, main/0]).
-spec clone_repo(binary(), binary()) -> nil.
clone_repo(Repo, Repo_dir) ->
_pipe = os:cmd(
unicode:characters_to_list(
<<<<<<"git "/utf8, "clone "/utf8>>/binary, Repo_dir/binary>>/binary,
Repo/binary>>
)
),
gleam@io:println(_pipe).
-spec pull_all(binary()) -> nil.
pull_all(Repo_dir) ->
Res = simplifile_erl:read_directory(Repo_dir),
Dirs = gleam@result:unwrap(Res, []),
gleam@list:each(
Dirs,
fun(X) ->
Path = <<<<Repo_dir/binary, "/"/utf8>>/binary, X/binary>>,
_pipe = simplifile_erl:read_directory(Path),
_pipe@1 = gleam@result:unwrap(_pipe, []),
gleam@list:each(_pipe@1, fun(Y) -> case Y of
<<".git"/utf8>> ->
_pipe@2 = os:cmd(
unicode:characters_to_list(
<<<<"git -C "/utf8, Path/binary>>/binary,
" pull"/utf8>>
)
),
gleam@io:println(_pipe@2);
_ ->
gleam@io:print(<<""/utf8>>)
end end)
end
).
-spec delete_repo(binary(), binary()) -> nil.
delete_repo(Name, Repo_dir) ->
Okay = simplifile_erl:delete(<<Repo_dir/binary, Name/binary>>),
case Okay of
_ ->
gleam@io:print(<<""/utf8>>)
end.
-spec main() -> nil.
main() ->
Repo_dir = <<"/Users/taradruffel/.workspace/repos"/utf8>>,
case erlang:element(4, argv:load()) of
[<<"clone"/utf8>>, Repo] ->
clone_repo(Repo, Repo_dir);
[<<"pull"/utf8>>] ->
pull_all(Repo_dir);
[<<"delete"/utf8>>, Name] ->
delete_repo(Name, Repo_dir);
_ ->
gleam@io:print(<<"test"/utf8>>)
end.