Skip to content

sata/pp_record

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pp_record

Pretty prints records using record definitions with help of epp. Almost all of the code is taken from shell.erl where shell commands rp and rr are defined.

How to use it

You read record definitions by using pp_print:read/1,2 and format an output with pp_record:print(Data, Defs).

How to build it

build with make all

Example

Running an example project with a Pooler pool running Riak client connections. Instead of printing the formatted output in the shell one can simply write it to a file. This is how I normally use it.

1> {ok, Defs} = pp_record:read("deps/pooler/src/pooler.erl").
{ok,[{pool,{attribute,24,record,
                      {pool,[{record_field,25,{atom,25,name}},
                             {record_field,26,{atom,26,group}},
                             {record_field,27,{atom,27,max_count},{integer,27,100}},
                             {record_field,28,{atom,28,init_count},{integer,28,10}},
                             {record_field,29,{atom,29,start_mfa}},
                             {record_field,30,{atom,30,free_pids},{nil,30}},
                             {record_field,31,{atom,31,in_use_count},{integer,31,0}},
                             {record_field,32,{atom,32,free_count},{integer,32,0}},
                             {record_field,39,{atom,39,add_member_retry},{integer,39,1}},
                             {record_field,44,
                                           {atom,44,cull_interval},
                                           {tuple,44,[{...}|...]}},
                             {record_field,46,{atom,46,max_age},{tuple,46,[...]}},
                             {record_field,49,{atom,49,member_sup}},
                             {record_field,53,{atom,53,...}},
                             {record_field,62,{atom,...},{...}},
                             {record_field,68,{...},...},
                             {record_field,74,...},
                             {record_field,...},
                             {...}|...]}}}]}
2> io:format("~s~n", [pp_record:print(sys:get_state(whereis(pool)), Defs)]).
#pool{name = pool,group = undefined,max_count = 2000,
      init_count = 10,
      start_mfa = {apa,riak_worker_start_link,[]},
      free_pids = [<0.77.0>,<0.76.0>,<0.75.0>,<0.74.0>,<0.73.0>,
                   <0.72.0>,<0.71.0>,<0.70.0>,<0.69.0>,<0.66.0>],
      in_use_count = 0,free_count = 10,add_member_retry = 1,
      cull_interval = {1,min},
      max_age = {30,sec},
      member_sup = pooler_pool_member_sup,starter_sup = undefined,
      all_members = {dict,10,16,16,8,80,48,
                          {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]},
                          {{[],[],
                            [[<0.66.0>|{#Ref<0.0.0.126>,free,{1447,782741,842698}}]],
                            [],[],
                            [[<0.69.0>|{#Ref<0.0.0.133>,free,{1447,782741,843147}}]],
                            [[<0.70.0>|{#Ref<0.0.0.140>,free,{1447,782741,843615}}]],
                            [[<0.71.0>|{#Ref<0.0.0.147>,free,{1447,782741,844130}}]],
                            [[<0.72.0>|{#Ref<0.0.0.154>,free,{1447,782741,844611}}]],
                            [[<0.73.0>|{#Ref<0.0.0.161>,free,{1447,782741,845061}}]],
                            [[<0.74.0>|{#Ref<0.0.0.168>,free,{1447,782741,845501}}]],
                            [[<0.75.0>|{#Ref<0.0.0.175>,free,{1447,782741,845909}}]],
                            [[<0.76.0>|{#Ref<0.0.0.182>,free,{1447,782741,846342}}]],
                            [[<0.77.0>|{#Ref<0.0.0.189>,free,{1447,782741,846792}}]],
                            [],[]}}},
      consumer_to_pid = {dict,0,16,16,8,80,48,
                              {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]},
                              {{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]}}},
      starting_members = [],
      member_start_timeout = {1,min},
      auto_grow_threshold = undefined,
      stop_mfa = {erlang,exit,['$pooler_pid',kill]},
      metrics_mod = pooler_no_metrics,metrics_api = folsom,
      queued_requestors = {[],[]},
      queue_max = 50}

About

pretty printing erlang records with help of epp

Resources

Stars

Watchers

Forks

Packages

No packages published