普通文本  |  38行  |  1.09 KB

# Copyright (c) 2012 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import subprocess

def _CheckSphinxBuild(input_api, output_api):
  """Check that the docs are buildable without any warnings.

  This check runs sphinx-build with -W so that warning are errors.

  However, since the trybots don't have sphinx installed, we'll treat a sphinx
  failure as a warning. (Let's trust that the docs editors are testing locally.)
  """

  try:
    subprocess.check_output(['make', 'SPHINXOPTS=-Wa'],
                            stderr=subprocess.STDOUT)
  except subprocess.CalledProcessError as e:
    return [output_api.PresubmitNotifyResult('sphinx_build failed:\n' +
            e.output)]

  return []


def CommonChecks(input_api, output_api):
  output = []
  output.extend(_CheckSphinxBuild(input_api, output_api))
  return output


def CheckChangeOnUpload(input_api, output_api):
  return CommonChecks(input_api, output_api)


def CheckChangeOnCommit(input_api, output_api):
  return CommonChecks(input_api, output_api)