docs: def add_resource(mt_file, ref, cache):
      """Add a resources entry, downloading the intuiting the file, replacing entries with
      the same reference"""
  
      if isinstance(mt_file, MetapackDoc):
          doc = mt_file
      else:
          doc = MetapackDoc(mt_file)
  
      if not 'Resources' in doc:
          doc.new_section('Resources')
  
      doc['Resources'].args = [e for e in set(doc['Resources'].args + ['Name', 'StartLine', 'HeaderLines', 'Encoding']) if
                               e]
  
      seen_names = set()
  
      u = parse_app_url(ref)
  
      # The web and file URLs don't list the same.
  
      if u.proto == 'file':
          entries = u.list()
      else:
          entries = [ssu for su in u.list() for ssu in su.list()]
  
      errors = []
  
      for e in entries:
          if not add_single_resource(doc, e, cache=cache, seen_names=seen_names):
              errors.append(e)
  
      if errors:
          prt()
          warn("Found, but failed to add these urls:")
          for e in errors:
              print('    ', e)
  
      write_doc(doc, mt_file)