From 30e12a0c9a2ea1a57a8ba8bcee8c951125c9f091 Mon Sep 17 00:00:00 2001 From: Nick Harper Date: Tue, 19 Mar 2013 11:44:49 -0700 Subject: [PATCH] Improve error if python can't run pep8 Summary: On systems with an ancient version of python, the pep8 linter won't run. Instead of blowing up in the user's face, we should display a nice error message. Test Plan: Put /usr/bin (where the ancient version of python is) at the beginning of my path and tried to lint some python. I got a nice error instead of a stack trace. Reviewers: epriestley, wez Reviewed By: epriestley CC: aran, Korvin Differential Revision: https://secure.phabricator.com/D5356 --- src/lint/linter/ArcanistPEP8Linter.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/lint/linter/ArcanistPEP8Linter.php b/src/lint/linter/ArcanistPEP8Linter.php index f798bf08..215a8a43 100644 --- a/src/lint/linter/ArcanistPEP8Linter.php +++ b/src/lint/linter/ArcanistPEP8Linter.php @@ -74,6 +74,13 @@ final class ArcanistPEP8Linter extends ArcanistFutureLinter { } } + list(, $stderr) = execx('/usr/bin/env python -V'); + if ($stderr < 'Python 2.5') { + throw new ArcanistUsageException( + "Python 2.5 or greater is required to run the PEP8 Python linter, but ". + rtrim($stderr)." was found instead."); + } + return $bin; }