code: def delete(path, fatal=True, logger=LOG.debug):
      
      islink = path and os.path.islink(path)
      if not islink and (not path or not os.path.exists(path)):
          return 0
  
      if is_dryrun():
          LOG.debug("Would delete %s", short(path))
          return 1
  
      if logger:
          logger("Deleting %s", short(path))
  
      try:
          if islink or os.path.isfile(path):
              os.unlink(path)
          else:
              shutil.rmtree(path)
          return 1
  
      except Exception as e:
          return abort("Can't delete %s: %s", short(path), e, fatal=(fatal, -1))
docs: :param str|None path: Path to file or folder to delete
      :param bool|None fatal: Abort execution on failure if True
      :param callable|None logger: Logger to use
      :return int: 1 if effectively done, 0 if no-op, -1 on failure