summaryrefslogtreecommitdiff
path: root/flake8
diff options
context:
space:
mode:
authorOleg Broytman <phd@phdru.name>2015-02-16 06:10:03 +0300
committerOleg Broytman <phd@phdru.name>2015-02-16 07:32:17 +0300
commitd03b5269130403d064a80d4a2b779d7e685d273b (patch)
tree8e13bd3664bbe00510dea7d58e6e05c640bfb74a /flake8
parent4d9a88298b7b45b8bd05c3911dfbbbc280a90fa3 (diff)
downloadflake8-d03b5269130403d064a80d4a2b779d7e685d273b.tar.gz
Use git config before os.environ
Get parameter's value using git config before trying os.environ.
Diffstat (limited to 'flake8')
-rw-r--r--flake8/hooks.py47
1 files changed, 40 insertions, 7 deletions
diff --git a/flake8/hooks.py b/flake8/hooks.py
index e14727e..0cbd88b 100644
--- a/flake8/hooks.py
+++ b/flake8/hooks.py
@@ -163,16 +163,49 @@ def find_vcs():
return ''
+def get_git_config(option, type='', convert_type=True):
+ # type can be --bool, --int or an empty string
+ _, git_cfg_value, _ = run('git config --get %s %s' % (type, option),
+ raw_output=True)
+ git_cfg_value = git_cfg_value.strip()
+ if not convert_type:
+ return git_cfg_value
+ if type == '--bool':
+ git_cfg_value = git_cfg_value == 'true'
+ elif git_cfg_value and type == '--int':
+ git_cfg_value = int(git_cfg_value)
+ return git_cfg_value
+
+
+_params = dict([
+ ('FLAKE8_COMPLEXITY', '--int'),
+ ('FLAKE8_STRICT', '--bool'),
+ ('FLAKE8_IGNORE', ''),
+ ('FLAKE8_LAZY', '--bool'),
+])
+
+
+def get_git_param(option, default=''):
+ type = _params[option]
+ param_value = get_git_config(option.lower().replace('_', '.'),
+ type=type, convert_type=False)
+ if param_value == '':
+ param_value = os.getenv(option, default)
+ if (type == '--bool') and not isinstance(param_value, bool):
+ param_value = param_value.lower() == 'true'
+ elif param_value and type == '--int':
+ param_value = int(param_value)
+ return param_value
+
+
git_hook_file = """#!/usr/bin/env python
import sys
-import os
-from flake8.hooks import git_hook
-
-COMPLEXITY = os.getenv('FLAKE8_COMPLEXITY', 10)
-STRICT = os.getenv('FLAKE8_STRICT', False)
-IGNORE = os.getenv('FLAKE8_IGNORE')
-LAZY = os.getenv('FLAKE8_LAZY', False)
+from flake8.hooks import git_hook, get_git_param
+COMPLEXITY = get_git_param('FLAKE8_COMPLEXITY', 10)
+STRICT = get_git_param('FLAKE8_STRICT', False)
+IGNORE = get_git_param('FLAKE8_IGNORE')
+LAZY = get_git_param('FLAKE8_LAZY', False)
if __name__ == '__main__':
sys.exit(git_hook(