From 5f8de423f190bbb79a62f804151bc24824fa32d8 Mon Sep 17 00:00:00 2001 From: "Matt A. Tobin" Date: Fri, 2 Feb 2018 04:16:08 -0500 Subject: Add m-esr52 at 52.6.0 --- config/rebuild_check.py | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 config/rebuild_check.py (limited to 'config/rebuild_check.py') diff --git a/config/rebuild_check.py b/config/rebuild_check.py new file mode 100644 index 000000000..a6c3dc87a --- /dev/null +++ b/config/rebuild_check.py @@ -0,0 +1,44 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +import os +import errno + +def mtime(path): + try: + return os.stat(path).st_mtime + except OSError as e: + if e.errno == errno.ENOENT: + return -1 + raise + +def rebuild_check(args): + target = args[0] + deps = args[1:] + t = mtime(target) + if t < 0: + print target + return + + newer = [] + removed = [] + for dep in deps: + deptime = mtime(dep) + if deptime < 0: + removed.append(dep) + elif mtime(dep) > t: + newer.append(dep) + + if newer and removed: + print 'Rebuilding %s because %s changed and %s was removed' % (target, ', '.join(newer), ', '.join(removed)) + elif newer: + print 'Rebuilding %s because %s changed' % (target, ', '.join(newer)) + elif removed: + print 'Rebuilding %s because %s was removed' % (target, ', '.join(removed)) + else: + print 'Rebuilding %s for an unknown reason' % target + +if __name__ == '__main__': + import sys + rebuild_check(sys.argv[1:]) -- cgit v1.2.3