summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard@openedhand.com>2008-03-14 11:28:39 +0000
committerRichard Purdie <richard@openedhand.com>2008-03-14 11:28:39 +0000
commit097076da2349e638342e69e465c85683adb6ccc7 (patch)
tree564c58ded8044866dd370a11a50f60e6b6201108
parent5f391a1647151923f25fa07b28349ee44ae21168 (diff)
downloadpoky-097076da2349e638342e69e465c85683adb6ccc7.tar.gz
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
-rwxr-xr-xmeta/packages/stage-manager/files/stage-manager23
-rw-r--r--meta/packages/stage-manager/stagemanager-native_0.0.1.bb3
2 files changed, 20 insertions, 6 deletions
diff --git a/meta/packages/stage-manager/files/stage-manager b/meta/packages/stage-manager/files/stage-manager
index 35453992f4..536d1afda0 100755
--- a/meta/packages/stage-manager/files/stage-manager
+++ b/meta/packages/stage-manager/files/stage-manager
@@ -33,6 +33,7 @@ def read_cache(cachefile):
33 cache[data[0]] = {} 33 cache[data[0]] = {}
34 cache[data[0]]['ts'] = int(data[1]) 34 cache[data[0]]['ts'] = int(data[1])
35 cache[data[0]]['size'] = int(data[2]) 35 cache[data[0]]['size'] = int(data[2])
36 cache[data[0]]['seen'] = False
36 return cache 37 return cache
37 38
38def mkdirhier(dir): 39def mkdirhier(dir):
@@ -77,13 +78,14 @@ if __name__ == "__main__":
77 if os.access(options.cachefile, os.F_OK): 78 if os.access(options.cachefile, os.F_OK):
78 cache = read_cache(options.cachefile) 79 cache = read_cache(options.cachefile)
79 80
80 found = False 81 found_difference = False
81 82
82 def updateCache(path, fstamp): 83 def updateCache(path, fstamp):
83 cache[path] = {} 84 cache[path] = {}
84 cache[path]['ts'] = fstamp[stat.ST_MTIME] 85 cache[path]['ts'] = fstamp[stat.ST_MTIME]
85 cache[path]['size'] = fstamp[stat.ST_SIZE] 86 cache[path]['size'] = fstamp[stat.ST_SIZE]
86 found = True 87 cache[path]['seen'] = True
88 found_difference = True
87 89
88 def copyfile(path): 90 def copyfile(path):
89 if options.copydir: 91 if options.copydir:
@@ -94,11 +96,13 @@ if __name__ == "__main__":
94 def copydir(path, fstamp): 96 def copydir(path, fstamp):
95 if options.copydir: 97 if options.copydir:
96 copypath = os.path.join(options.copydir, path.replace(options.parentdir, '', 1)) 98 copypath = os.path.join(options.copydir, path.replace(options.parentdir, '', 1))
99 if os.path.exists(copypath):
100 os.system("rm -rf " + copypath)
97 if os.path.islink(path): 101 if os.path.islink(path):
98 os.symlink(os.readlink(path), copypath) 102 os.symlink(os.readlink(path), copypath)
99 else: 103 else:
100 mkdirhier(copypath) 104 mkdirhier(copypath)
101 os.utime(copypath, (fstamp[stat.ST_ATIME], fstamp[stat.ST_MTIME])) 105 os.utime(copypath, (fstamp[stat.ST_ATIME], fstamp[stat.ST_MTIME]))
102 106
103 for root, dirs, files in os.walk(options.parentdir): 107 for root, dirs, files in os.walk(options.parentdir):
104 for f in files: 108 for f in files:
@@ -115,6 +119,7 @@ if __name__ == "__main__":
115 print "file %s changed" % path 119 print "file %s changed" % path
116 updateCache(path, fstamp) 120 updateCache(path, fstamp)
117 copyfile(path) 121 copyfile(path)
122 cache[path]['seen'] = True
118 for d in dirs: 123 for d in dirs:
119 path = os.path.join(root, d) 124 path = os.path.join(root, d)
120 fstamp = os.lstat(path) 125 fstamp = os.lstat(path)
@@ -127,13 +132,23 @@ if __name__ == "__main__":
127 print "dir %s changed" % path 132 print "dir %s changed" % path
128 updateCache(path, fstamp) 133 updateCache(path, fstamp)
129 copydir(path, fstamp) 134 copydir(path, fstamp)
135 cache[path]['seen'] = True
136
137 todel = []
138 for path in cache:
139 if not cache[path]['seen']:
140 print "%s removed" % path
141 found_difference = True
142 todel.append(path)
130 143
131 if options.update: 144 if options.update:
132 print "Updating" 145 print "Updating"
146 for path in todel:
147 del cache[path]
133 mkdirhier(os.path.split(options.cachefile)[0]) 148 mkdirhier(os.path.split(options.cachefile)[0])
134 write_cache(options.cachefile, cache) 149 write_cache(options.cachefile, cache)
135 150
136 if found: 151 if found_difference:
137 sys.exit(5) 152 sys.exit(5)
138 sys.exit(0) 153 sys.exit(0)
139 154
diff --git a/meta/packages/stage-manager/stagemanager-native_0.0.1.bb b/meta/packages/stage-manager/stagemanager-native_0.0.1.bb
index 828af1fbb5..39c8d7f3de 100644
--- a/meta/packages/stage-manager/stagemanager-native_0.0.1.bb
+++ b/meta/packages/stage-manager/stagemanager-native_0.0.1.bb
@@ -1,5 +1,5 @@
1DESCRIPTION = "Helper script for packaged-staging.bbclass" 1DESCRIPTION = "Helper script for packaged-staging.bbclass"
2PR = "r7" 2PR = "r8"
3 3
4SRC_URI = "file://stage-manager" 4SRC_URI = "file://stage-manager"
5LICENSE = "GPLv2" 5LICENSE = "GPLv2"
@@ -10,7 +10,6 @@ inherit native
10 10
11DEPENDS = " " 11DEPENDS = " "
12PACKAGE_DEPENDS = " " 12PACKAGE_DEPENDS = " "
13PATCHTOOL = ""
14INHIBIT_DEFAULT_DEPS = "1" 13INHIBIT_DEFAULT_DEPS = "1"
15 14
16do_install() { 15do_install() {