stage-manager: Sync with OE for various fixes
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@4005 311d38ba-8fff-0310-9ca6-ca027cbcb966
This commit is contained in:
parent
5f391a1647
commit
097076da23
|
@ -33,6 +33,7 @@ def read_cache(cachefile):
|
|||
cache[data[0]] = {}
|
||||
cache[data[0]]['ts'] = int(data[1])
|
||||
cache[data[0]]['size'] = int(data[2])
|
||||
cache[data[0]]['seen'] = False
|
||||
return cache
|
||||
|
||||
def mkdirhier(dir):
|
||||
|
@ -77,13 +78,14 @@ if __name__ == "__main__":
|
|||
if os.access(options.cachefile, os.F_OK):
|
||||
cache = read_cache(options.cachefile)
|
||||
|
||||
found = False
|
||||
found_difference = False
|
||||
|
||||
def updateCache(path, fstamp):
|
||||
cache[path] = {}
|
||||
cache[path]['ts'] = fstamp[stat.ST_MTIME]
|
||||
cache[path]['size'] = fstamp[stat.ST_SIZE]
|
||||
found = True
|
||||
cache[path]['seen'] = True
|
||||
found_difference = True
|
||||
|
||||
def copyfile(path):
|
||||
if options.copydir:
|
||||
|
@ -94,11 +96,13 @@ if __name__ == "__main__":
|
|||
def copydir(path, fstamp):
|
||||
if options.copydir:
|
||||
copypath = os.path.join(options.copydir, path.replace(options.parentdir, '', 1))
|
||||
if os.path.exists(copypath):
|
||||
os.system("rm -rf " + copypath)
|
||||
if os.path.islink(path):
|
||||
os.symlink(os.readlink(path), copypath)
|
||||
else:
|
||||
mkdirhier(copypath)
|
||||
os.utime(copypath, (fstamp[stat.ST_ATIME], fstamp[stat.ST_MTIME]))
|
||||
os.utime(copypath, (fstamp[stat.ST_ATIME], fstamp[stat.ST_MTIME]))
|
||||
|
||||
for root, dirs, files in os.walk(options.parentdir):
|
||||
for f in files:
|
||||
|
@ -115,6 +119,7 @@ if __name__ == "__main__":
|
|||
print "file %s changed" % path
|
||||
updateCache(path, fstamp)
|
||||
copyfile(path)
|
||||
cache[path]['seen'] = True
|
||||
for d in dirs:
|
||||
path = os.path.join(root, d)
|
||||
fstamp = os.lstat(path)
|
||||
|
@ -127,13 +132,23 @@ if __name__ == "__main__":
|
|||
print "dir %s changed" % path
|
||||
updateCache(path, fstamp)
|
||||
copydir(path, fstamp)
|
||||
cache[path]['seen'] = True
|
||||
|
||||
todel = []
|
||||
for path in cache:
|
||||
if not cache[path]['seen']:
|
||||
print "%s removed" % path
|
||||
found_difference = True
|
||||
todel.append(path)
|
||||
|
||||
if options.update:
|
||||
print "Updating"
|
||||
for path in todel:
|
||||
del cache[path]
|
||||
mkdirhier(os.path.split(options.cachefile)[0])
|
||||
write_cache(options.cachefile, cache)
|
||||
|
||||
if found:
|
||||
if found_difference:
|
||||
sys.exit(5)
|
||||
sys.exit(0)
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
DESCRIPTION = "Helper script for packaged-staging.bbclass"
|
||||
PR = "r7"
|
||||
PR = "r8"
|
||||
|
||||
SRC_URI = "file://stage-manager"
|
||||
LICENSE = "GPLv2"
|
||||
|
@ -10,7 +10,6 @@ inherit native
|
|||
|
||||
DEPENDS = " "
|
||||
PACKAGE_DEPENDS = " "
|
||||
PATCHTOOL = ""
|
||||
INHIBIT_DEFAULT_DEPS = "1"
|
||||
|
||||
do_install() {
|
||||
|
|
Loading…
Reference in New Issue