]> code.ossystems Code Review - openembedded-core.git/commitdiff
stage-manager: Sync with OE for various fixes
authorRichard Purdie <richard@openedhand.com>
Fri, 14 Mar 2008 11:28:39 +0000 (11:28 +0000)
committerRichard Purdie <richard@openedhand.com>
Fri, 14 Mar 2008 11:28:39 +0000 (11:28 +0000)
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@4005 311d38ba-8fff-0310-9ca6-ca027cbcb966

meta/packages/stage-manager/files/stage-manager
meta/packages/stage-manager/stagemanager-native_0.0.1.bb

index 35453992f4cbf97354da2c787e7a87ee830998e4..536d1afda0588a029d9c18ff9a760c393346d3d3 100755 (executable)
@@ -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)
 
index 828af1fbb5d85883b6bbc75cfe1c957982673da2..39c8d7f3de6ea2cad7bf2b986e6e1fc8e8f597ab 100644 (file)
@@ -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() {