config/rebuild_check.py

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     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
     8 def mtime(path):
     9     try:
    10         return os.stat(path).st_mtime
    11     except OSError as e:
    12         if e.errno == errno.ENOENT:
    13             return -1
    14         raise
    16 def rebuild_check(args):
    17     target = args[0]
    18     deps = args[1:]
    19     t = mtime(target)
    20     if t < 0:
    21         print target
    22         return
    24     newer = []
    25     removed = []
    26     for dep in deps:
    27         deptime = mtime(dep)
    28         if deptime < 0:
    29             removed.append(dep)
    30         elif mtime(dep) > t:
    31             newer.append(dep)
    33     if newer and removed:
    34         print 'Rebuilding %s because %s changed and %s was removed' % (target, ', '.join(newer), ', '.join(removed))
    35     elif newer:
    36         print 'Rebuilding %s because %s changed' % (target, ', '.join(newer))
    37     elif removed:
    38         print 'Rebuilding %s because %s was removed' % (target, ', '.join(removed))
    39     else:
    40         print 'Rebuilding %s for an unknown reason' % target
    42 if __name__ == '__main__':
    43     import sys
    44     rebuild_check(sys.argv[1:])

mercurial