]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/distrib/genfilelist.py
Merged wxPython 2.4.x to the 2.5 branch (Finally!!!)
[wxWidgets.git] / wxPython / distrib / genfilelist.py
diff --git a/wxPython/distrib/genfilelist.py b/wxPython/distrib/genfilelist.py
new file mode 100644 (file)
index 0000000..20760b3
--- /dev/null
@@ -0,0 +1,51 @@
+"""
+Walk a directory tree and output a filename list suitable for use
+in an RPM spec.
+
+Usage:  genfilelist.py [-r] build_root filespec(s)
+
+"""
+
+
+import sys, os, glob, stat
+
+
+def walktree(names, buildroot, recurse):
+    for name in names:
+        isdir = os.path.isdir(name)
+        printfilename(name, buildroot, isdir)
+        if isdir and recurse:
+            walktree([os.path.join(name, x) for x in os.listdir(name)], buildroot, recurse)
+
+
+def printfilename(name, buildroot, isdir):
+    s = os.lstat(name)
+    realname = name[len(buildroot):]
+    if isdir:
+        fmt = "%%dir %%attr(%o, root, root) %s"
+    else:
+        fmt = "%%attr(%o, root, root) %s"
+    print fmt % (s[stat.ST_MODE] & 0777, realname)
+
+
+def main(args):
+    if args[0] == '-r':
+        recurse = 1
+        args = args[1:]
+    else:
+        recurse = 0
+
+    if len(args) < 2:
+        print __str__
+        sys.exit(1)
+
+    buildroot = args[0]
+    for arg in args[1:]:
+        if arg[0] == '/':
+            arg = arg[1:]
+        walktree(glob.glob(os.path.join(buildroot, arg)), buildroot, recurse)
+
+if __name__ == "__main__":
+    main(sys.argv[1:])
+
+