pycompile: allow to force compilation

By default, compile_dir() relies on the modification time to know if a
python file has to be built again. However in some circumstances (when
doing reproducible builds), modification times are not reliable. Thus,
this patch adds a way to force the rebuild of all python sources.

Signed-off-by: Jérôme Pouiller <jezz@sysmic.org>
Reviewed-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
Jérôme Pouiller 2016-12-20 14:46:22 +01:00 committed by Thomas Petazzoni
parent 6a4131d101
commit 6e45c5500b

View File

@ -10,6 +10,7 @@ from __future__ import print_function
import sys
import py_compile
import compileall
import argparse
def check_for_errors(comparison):
'''Wrap comparison operator with code checking for PyCompileError.
@ -54,4 +55,12 @@ class ReportProblem(int):
def __ne__(self, other):
return not self == other
compileall.compile_dir(sys.argv[1], quiet=ReportProblem())
parser = argparse.ArgumentParser(description='Compile Python source files in a directory tree.')
parser.add_argument("target", metavar='DIRECTORY',
help='Directory to scan')
parser.add_argument("--force", action='store_true',
help="Force compilation even if alread compiled")
args = parser.parse_args()
compileall.compile_dir(args.target, force=args.force, quiet=ReportProblem())