-# used in sfi list
-def terminal_render (records,options):
- # sort records by type
- grouped_by_type={}
- for record in records:
- type=record['type']
- if type not in grouped_by_type: grouped_by_type[type]=[]
- grouped_by_type[type].append(record)
- group_types=grouped_by_type.keys()
- group_types.sort()
- for type in group_types:
- group=grouped_by_type[type]
-# print 20 * '-', type
- try: renderer=eval('terminal_render_'+type)
- except: renderer=terminal_render_default
- for record in group: renderer(record,options)
-
-def render_plural (how_many, name,names=None):
- if not names: names="%ss"%name
- if how_many<=0: return "No %s"%name
- elif how_many==1: return "1 %s"%name
- else: return "%d %s"%(how_many,names)
-
-def terminal_render_default (record,options):
- print "%s (%s)" % (record['hrn'], record['type'])
-def terminal_render_user (record, options):
- print "%s (User)"%record['hrn'],
- if record.get('reg-pi-authorities',None): print " [PI at %s]"%(" and ".join(record['reg-pi-authorities'])),
- if record.get('reg-slices',None): print " [IN slices %s]"%(" and ".join(record['reg-slices'])),
- user_keys=record.get('reg-keys',[])
- if not options.verbose:
- print " [has %s]"%(render_plural(len(user_keys),"key"))
- else:
- print ""
- for key in user_keys: print 8*' ',key.strip("\n")
-
-def terminal_render_slice (record, options):
- print "%s (Slice)"%record['hrn'],
- if record.get('reg-researchers',None): print " [USERS %s]"%(" and ".join(record['reg-researchers'])),
-# print record.keys()
- print ""
-def terminal_render_authority (record, options):
- print "%s (Authority)"%record['hrn'],
- if record.get('reg-pis',None): print " [PIS %s]"%(" and ".join(record['reg-pis'])),
- print ""
-def terminal_render_node (record, options):
- print "%s (Node)"%record['hrn']
-