зеркало из https://github.com/mozilla/tls-canary.git
61 строка
1.5 KiB
Python
Executable File
61 строка
1.5 KiB
Python
Executable File
#!/usr/bin/env python
|
|
"""
|
|
Originally forked from ``https://gist.github.com/810399``
|
|
|
|
Altered by @cr for the TLS Canary project
|
|
"""
|
|
import os
|
|
import re
|
|
import shutil
|
|
import subprocess
|
|
import sys
|
|
import tempfile
|
|
|
|
|
|
def system(*args, **kwargs):
|
|
kwargs.setdefault('stdout', subprocess.PIPE)
|
|
proc = subprocess.Popen(args, **kwargs)
|
|
out, err = proc.communicate()
|
|
return out
|
|
|
|
|
|
def ignore_file(filename):
|
|
ignored = []
|
|
match = False
|
|
for i in ignored:
|
|
if i in filename:
|
|
match = True
|
|
return match
|
|
|
|
|
|
def main():
|
|
modified = re.compile('''^[AM]+\s+(?P<name>.*\.py)''', re.MULTILINE)
|
|
files = system('git', 'status', '--porcelain').decode("utf-8")
|
|
files = modified.findall(files)
|
|
|
|
tempdir = tempfile.mkdtemp()
|
|
for name in files:
|
|
filename = os.path.join(tempdir, name)
|
|
|
|
if not ignore_file(filename):
|
|
filepath = os.path.dirname(filename)
|
|
if not os.path.exists(filepath):
|
|
os.makedirs(filepath)
|
|
with open(filename, 'w') as f:
|
|
system('git', 'show', ':' + name, stdout=f)
|
|
try:
|
|
output = system('pycodestyle', '--show-source', '--max-line-length=120', '.', cwd=tempdir).decode("utf-8")
|
|
except OSError:
|
|
print("The `pycodestyle` checker is required for commits.")
|
|
print("You probably haven't activated TLS Canary's Python dev environment.")
|
|
sys.exit(1)
|
|
|
|
shutil.rmtree(tempdir)
|
|
if output:
|
|
sys.stdout.write(output)
|
|
sys.exit(1)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|