1e4a197e4c
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@19793 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
52 lines
1.1 KiB
Python
52 lines
1.1 KiB
Python
"""
|
|
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:])
|
|
|
|
|