summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/rebar_prv_deps_tree.erl26
1 files changed, 16 insertions, 10 deletions
diff --git a/src/rebar_prv_deps_tree.erl b/src/rebar_prv_deps_tree.erl
index d429c52..301b6be 100644
--- a/src/rebar_prv_deps_tree.erl
+++ b/src/rebar_prv_deps_tree.erl
@@ -49,26 +49,32 @@ print_deps_tree(SrcDeps, Verbose, State) ->
ProjectAppNames = [{rebar_app_info:name(App)
,rebar_app_info:original_vsn(App)
,project} || App <- rebar_state:project_apps(State)],
+ io:setopts([{encoding, unicode}]),
case dict:find(root, D) of
{ok, Children} ->
- print_children(-1, lists:keysort(1, Children++ProjectAppNames), D, Verbose);
+ print_children("", lists:keysort(1, Children++ProjectAppNames), D, Verbose);
error ->
- print_children(-1, lists:keysort(1, ProjectAppNames), D, Verbose)
+ print_children("", lists:keysort(1, ProjectAppNames), D, Verbose)
end.
print_children(_, [], _, _) ->
ok;
-print_children(Indent, [{Name, Vsn, Source} | Rest], Dict, Verbose) ->
-
- [io:format("| ") || _ <- lists:seq(0, Indent, 2)],
- io:format("|- "),
- io:format("~s-~s (~s)~n", [Name, Vsn, type(Source, Verbose)]),
+print_children(Prefix, [{Name, Vsn, Source} | Rest], Dict, Verbose) ->
+ Prefix1 = case Rest of
+ [] ->
+ io:format("~s└─ ", [Prefix]),
+ [Prefix, " "];
+ _ ->
+ io:format("~s├─ ", [Prefix]),
+ [Prefix, "│ "]
+ end,
+ io:format("~s─~s (~s)~n", [Name, Vsn, type(Source, Verbose)]),
case dict:find(Name, Dict) of
{ok, Children} ->
- print_children(Indent+2, lists:keysort(1, Children), Dict, Verbose),
- print_children(Indent, Rest, Dict, Verbose);
+ print_children(Prefix1, lists:keysort(1, Children), Dict, Verbose),
+ print_children(Prefix, Rest, Dict, Verbose);
error ->
- print_children(Indent, Rest, Dict, Verbose)
+ print_children(Prefix, Rest, Dict, Verbose)
end.
type(project, _) ->