code: def ensure_folder(path, folder=False, fatal=True, logger=LOG.debug, dryrun=None):
      
      if not path:
          return 0
  
      if folder:
          folder = resolved_path(path)
  
      else:
          folder = parent_folder(path)
  
      if os.path.isdir(folder):
          if not os.access(folder, os.W_OK):
              return abort("Folder %s is not writable", folder, fatal=(fatal, -1), logger=logger)
          return 0
  
      if dryrun is None:
          dryrun = is_dryrun()
  
      if dryrun:
          LOG.debug("Would create %s", short(folder))
          return 1
  
      try:
          os.makedirs(folder)
          if logger:
              logger("Created folder %s", short(folder))
  
          return 1
  
      except Exception as e:
          return abort("Can't create folder %s: %s", short(folder), e, fatal=(fatal, -1), logger=logger)
docs: :param str|None path: Path to file or folder
      :param bool folder: If True, 'path' refers to a folder (file otherwise)
      :param bool|None fatal: Abort execution on failure if True
      :param callable|None logger: Logger to use
      :param bool|None dryrun: If specified, override global is_dryrun()
      :return int: 1 if effectively done, 0 if no-op, -1 on failure