cros lint: only allow one of pylintrc or .pylintrc
If both are created in a directory, it's unclear which we should
prefer. Error out to avoid confusion for everyone.
BUG=chromium:1062377
TEST=`cros lint` works in chromite until a .pylintrc is created
Change-Id: Ie4ebe40a57158e598465c26d3b5e365682acddb4
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/2299085
Reviewed-by: Chris McDonald <cjmcdonald@chromium.org>
Commit-Queue: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
diff --git a/cli/cros/cros_lint.py b/cli/cros/cros_lint.py
index 63fba09..61b214a 100644
--- a/cli/cros/cros_lint.py
+++ b/cli/cros/cros_lint.py
@@ -53,10 +53,17 @@
project_path = _GetProjectPath(path)
parent = os.path.dirname(path)
while project_path and parent.startswith(project_path):
- for rc_name in ('pylintrc', '.pylintrc'):
- pylintrc = os.path.join(parent, rc_name)
- if os.path.isfile(pylintrc):
- return pylintrc
+ pylintrc = os.path.join(parent, 'pylintrc')
+ dotpylintrc = os.path.join(parent, '.pylintrc')
+ # Only allow one of these to exist to avoid confusing which one is used.
+ if os.path.isfile(pylintrc) and os.path.isfile(dotpylintrc):
+ cros_build_lib.Die('%s: Only one of "pylintrc" or ".pylintrc" is allowed',
+ parent)
+ if os.path.isfile(pylintrc):
+ return pylintrc
+ if os.path.isfile(dotpylintrc):
+ return dotpylintrc
+
parent = os.path.dirname(parent)
return os.path.join(constants.SOURCE_ROOT, 'chromite', 'pylintrc')