Bug 1509898 [wpt PR 14236] - Simplify interpolation of 2-D matrix transforms., a...
[gecko.git] / config / rebuild_check.py
blobba17f7444ad70c2063327075204cb9642f4e3b9a
1 # This Source Code Form is subject to the terms of the Mozilla Public
2 # License, v. 2.0. If a copy of the MPL was not distributed with this
3 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
5 import os
6 import errno
9 def mtime(path):
10 try:
11 return os.stat(path).st_mtime
12 except OSError as e:
13 if e.errno == errno.ENOENT:
14 return -1
15 raise
18 def rebuild_check(args):
19 target = args[0]
20 deps = args[1:]
21 t = mtime(target)
22 if t < 0:
23 print(target)
24 return
26 newer = []
27 removed = []
28 for dep in deps:
29 deptime = mtime(dep)
30 if deptime < 0:
31 removed.append(dep)
32 elif mtime(dep) > t:
33 newer.append(dep)
35 if newer and removed:
36 print('Rebuilding %s because %s changed and %s was removed' % (
37 target, ', '.join(newer), ', '.join(removed)))
38 elif newer:
39 print('Rebuilding %s because %s changed' % (target, ', '.join(newer)))
40 elif removed:
41 print('Rebuilding %s because %s was removed' % (
42 target, ', '.join(removed)))
43 else:
44 print('Rebuilding %s for an unknown reason' % target)
47 if __name__ == '__main__':
48 import sys
49 rebuild_check(sys.argv[1:])