diff options
author | Tristan Sloughter <tristan.sloughter@gmail.com> | 2015-08-31 15:35:34 -0500 |
---|---|---|
committer | Tristan Sloughter <tristan.sloughter@gmail.com> | 2015-08-31 15:35:34 -0500 |
commit | c5825978a0d6e1ad6e870b61f032490bc427aa21 (patch) | |
tree | 96e2cd978399e631cd4ee8f4b22ee6b916adfc8c /src | |
parent | caf8ff31d8edfd1cbe022d4ed173a399afd67c0f (diff) | |
parent | f8a507191efd23b2dbe691497d3a9f1334c70020 (diff) |
Merge pull request #766 from project-fifo/utf8-tree
Utf8 tree
Diffstat (limited to 'src')
-rw-r--r-- | src/rebar_prv_deps_tree.erl | 26 |
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, _) -> |