code: def help(i):
      
  
      o=i.get('out','')
  
      m=i.get('module_uoa','')
      if m=='':
         m='<module_uoa>'
  
      h= 'Usage: '+cfg['cmd'].replace('$#module_uoa#$', m)+'\n'
  
      h+='\n'
      h+='  Common actions:\n'
  
      for q in sorted(cfg['common_actions']):
          s=q
          desc=cfg['actions'][q].get('desc','')
          if desc!='': s+=' - '+desc
          h+='    '+s+'\n'
  
      h+='\n'
      h+='  Module actions:\n'
  
      if m=='<module_uoa>':
         # Internal actions (for this kernel)
         for q in sorted(cfg['actions']):
             if q not in cfg['common_actions']:
                s=q
                desc=cfg['actions'][q].get('desc','')
                if desc!='': s+=' - '+desc
                h+='    '+s+'\n'
      else:
         # Attempt to load 
         r=list_actions({'module_uoa':m}) 
         if r['return']>0: return r
         actions=r['actions']
  
         if len(actions)==0:
            h+='    Not described yet ...\n'
         else:
            for q in sorted(actions.keys()):
                s=q
                desc=actions[q].get('desc','')
                if desc!='': s+=' - '+desc
                h+='    '+s+'\n'
  
      if m=='<module_uoa>':
         h+='\n'
         h+=cfg['help_examples']
  
      h+='\n'
      h+=cfg['help_web']
  
      if o=='con': out(h)
  
      return {'return':0, 'help':h}
docs: Input:  {
              }
  
      Output: {
                return       - return code =  0, if successful
                                           >  0, if error
                (error)      - error text if return > 0
  
                help         - help text
              }