code: def get_scms_for_path(path):
      
      from vcs.backends import get_backend
      if hasattr(path, '__call__'):
          path = path()
      if not os.path.isdir(path):
          raise VCSError("Given path %r is not a directory" % path)
  
      result = []
      for key in ALIASES:
          dirname = os.path.join(path, '.' + key)
          if os.path.isdir(dirname):
              result.append(key)
              continue
          # We still need to check if it's not bare repository as
          # bare repos don't have working directories
          try:
              get_backend(key)(path)
              result.append(key)
              continue
          except RepositoryError:
              # Wrong backend
              pass
          except VCSError:
              # No backend at all
              pass
      return result
docs: Returns all scm's found at the given path. If no scm is recognized
      - empty list is returned.
  
      :param path: path to directory which should be checked. May be callable.
  
      :raises VCSError: if given ``path`` is not a directory