anchor.diff:           cluster_info/1,
            down/1,
            reload_code/1]).
  +
  +%% Arrow is 24 chars wide
  +-define(ARROW, "=======================>").
  +
   
   join([NodeStr]) ->
       try
  
positive.code:         _ ->
              io:format("Module ~w not yet loaded, skipped.~n", [Mod])
      end.
  
  format_stats([], Acc) ->
      lists:reverse(Acc);
  
negative.code:                     Reason]),
              io:format("Transfers failed, see log for details~n"),
              error
      end,
  
      %% Now display active transfers
      {Xfers, Down} = riak_core_status:all_active_transfers(),
  
      DisplayXfer =
          fun({{Mod, Partition}, Node, outbound, active, _Status}) ->
                  print_v1_status(Mod, Partition, Node);
  
             ({status_v2, Status}) ->
                  %% Display base status
                  Type = proplists:get_value(type, Status),
                  Mod = proplists:get_value(mod, Status),
                  Partition = proplists:get_value(partition, Status),
                  StartTS = proplists:get_value(start_ts, Status),
                  SrcNode = proplists:get_value(src_node, Status),
                  TargetNode = proplists:get_value(target_node, Status),
  
                  print_v2_status(Type, Mod, Partition, StartTS),
  
                  %% Get info about stats if there is any yet
                  Stats = proplists:get_value(stats, Status),
  
                  print_stats(SrcNode, TargetNode, Stats),
                  io:format("~n");
  
             (_) ->
                  ignore
          end,
      DisplayDown =
          fun(Node) ->
                  io:format("Node ~p could not be contacted~n", [Node])
          end,
  
      io:format("~nActive Transfers:~n~n", []),
      [DisplayXfer(Xfer) || Xfer <- lists:flatten(Xfers)],
  
      io:format("~n"),
      [DisplayDown(Node) || Node <- Down].
  
  cluster_info([OutFile|Rest]) ->
      try
  