diff options
Diffstat (limited to 'build-aux/introspect')
-rwxr-xr-x | build-aux/introspect | 73 |
1 files changed, 0 insertions, 73 deletions
diff --git a/build-aux/introspect b/build-aux/introspect deleted file mode 100755 index 9b527455f..000000000 --- a/build-aux/introspect +++ /dev/null @@ -1,73 +0,0 @@ -#!/usr/bin/env escript -%% -*- mode: erlang -*- - -main(_) -> - introspect("rebar.config.script"). - -introspect(File) -> - Bindings = [{'SCRIPT', File}, {'CONFIG', []}], - {ok, Config} = file:script(File, Bindings), - {deps, Deps} = lists:keyfind(deps, 1, Config), - introspect_deps(Deps). - -introspect_deps([]) -> - ok; -introspect_deps([Dep | Rest]) -> - introspect_dep(Dep), - introspect_deps(Rest). - -introspect_dep({App, VsnRegex, {git, Url, From}, _Raw}) -> - introspect_dep({App, VsnRegex, {git, Url, From}}); -introspect_dep({App, _VsnRegex, {git, _Url, From}}) -> - io:format(bold("~s~n"), [App]), - introspect_diff(App, From), - io:format("~n", []), - ok. - -revision({branch, Branch}) -> - Branch; -revision({tag, Tag}) -> - Tag; -revision(Rev) -> - Rev. - -introspect_diff(App, From) -> - introspect_diff(App, revision(From), "origin/master"). - -introspect_diff(App, From, ToBranch) -> - {ok, Log} = sh(App, io_lib:format("git log --pretty=oneline ~s..~s", [From, ToBranch])), - case Log of - [] -> - io:format(" up to date on ~s~n", [bold(ToBranch)]); - _ -> - io:format(" ~B commits behind ~s~n", [length(Log), bold(ToBranch)]), - io:format("~s~n~n", [string:join([" " ++ L || L <- Log], "\n")]) - end. - -sh(App, Cmd) -> - Dir = lists:flatten(["src/", atom_to_list(App)]), - Port = open_port({spawn, lists:flatten(Cmd)}, - [{cd, Dir}, - {line, 16384}, - exit_status, - stderr_to_stdout, - use_stdio]), - read_port(Port). - -read_port(Port) -> - read_port(Port, []). - -read_port(Port, Acc) -> - receive - {Port, {data, {eol, Line}}} -> - read_port(Port, [Line | Acc]); - {Port, {data, {noeol, Line}}} -> - read_port(Port, [Line | Acc]); - {Port, {exit_status, 0}} -> - {ok, lists:reverse(Acc)}; - {Port, {exit_status, Code}} -> - {error, Code, Acc} - end. - -bold(Text) -> - "\e[1m" ++ Text ++ "\e[0m". |