code: def supply_backend(optional: Union[callable, bool]=False, index_exists: bool=True):
      
      real_optional = False if callable(optional) else optional
  
      def supply_backend_inner(func):
          @wraps(func)
          def wrapped_supply_backend(args):
              log = logging.getLogger(func.__name__)
              if real_optional and not getattr(args, "backend", False):
                  backend = None
              else:
                  try:
                      git_index = GitIndex(remote=args.index_repo, username=args.username,
                                           password=args.password, cache=args.cache,
                                           exists=index_exists, signoff=args.signoff,
                                           log_level=args.log_level)
                  except ValueError:
                      return 1
                  backend = create_backend_noexc(log, args.backend, git_index, args.args)
                  if backend is None:
                      return 1
              return func(args, backend, log)
          return wrapped_supply_backend
      if callable(optional):
          return supply_backend_inner(optional)
      return supply_backend_inner
docs: Decorator to pass the initialized backend to the decorated callable. \
      Used by command line entries. If the backend cannot be created, return 1.
  
      :param optional: Either a decorated function or a value which indicates whether we should \
                       construct the backend object if it does not exist in the wrapped function's \
                       `args`: `True` means we shouldn't.
      :param index_exists: Whether the Git model index exists on the remote side or not.