# This config file disables some of the ChromiumOS source style checks and
# adds a hook to validate .py files. Comment out the disable-flags for
# any checks you want to leave enabled. Edit utils/pylintrc to disable any
# pylint checks.

[Hook Overrides]
cros_license_check: false

[Hook Scripts]
hook0 = ./utils/run_pylint.py
hook2 = ./site_utils/presubmit_hooks/check_control_files.py
# Not enabled because it takes a few minutes. Put here for convenience
# and as a bookmark. TODO: http://crbug.com/558819 some wrapper script
# computing optimal -r options based on PRESUBMIT_FILES.
# hook3 = ./utils/unittest_suite.py # -r server/
hook4 = ./site_utils/presubmit_hooks/check_json_files.py
