From fa5406496750f9f0717457341041297b4173430f Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Sun, 7 Apr 1991 13:40:56 +0000 Subject: [PATCH] Support packing whole trees. --- Lib/lib-old/packmail.py | 26 ++++++++++++++++++++++++++ Lib/packmail.py | 26 ++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/Lib/lib-old/packmail.py b/Lib/lib-old/packmail.py index c7bebe89c19..a964d6d11b4 100644 --- a/Lib/lib-old/packmail.py +++ b/Lib/lib-old/packmail.py @@ -3,6 +3,7 @@ import mac import macpath from stat import ST_MTIME +import string # Pack one file def pack(outfp, file, name): @@ -46,3 +47,28 @@ def packnotolder(outfp, dirname, oldest): print 'No.' todo.sort() packsome(outfp, dirname, todo) + +# Pack a whole tree (no exceptions) +def packtree(outfp, dirname): + print 'packtree', dirname + outfp.write('mkdir ' + unixfix(dirname) + '\n') + names = mac.listdir(dirname) + subdirs = [] + for name in names: + fullname = macpath.cat(dirname, name) + if macpath.isdir(fullname): + subdirs.append(fullname) + else: + print 'pack', fullname + pack(outfp, fullname, unixfix(fullname)) + for subdirname in subdirs: + packtree(outfp, subdirname) + +def unixfix(name): + comps = string.splitfields(name, ':') + res = '' + for comp in comps: + if comp: + if res: res = res + '/' + res = res + comp + return res diff --git a/Lib/packmail.py b/Lib/packmail.py index c7bebe89c19..a964d6d11b4 100644 --- a/Lib/packmail.py +++ b/Lib/packmail.py @@ -3,6 +3,7 @@ import mac import macpath from stat import ST_MTIME +import string # Pack one file def pack(outfp, file, name): @@ -46,3 +47,28 @@ def packnotolder(outfp, dirname, oldest): print 'No.' todo.sort() packsome(outfp, dirname, todo) + +# Pack a whole tree (no exceptions) +def packtree(outfp, dirname): + print 'packtree', dirname + outfp.write('mkdir ' + unixfix(dirname) + '\n') + names = mac.listdir(dirname) + subdirs = [] + for name in names: + fullname = macpath.cat(dirname, name) + if macpath.isdir(fullname): + subdirs.append(fullname) + else: + print 'pack', fullname + pack(outfp, fullname, unixfix(fullname)) + for subdirname in subdirs: + packtree(outfp, subdirname) + +def unixfix(name): + comps = string.splitfields(name, ':') + res = '' + for comp in comps: + if comp: + if res: res = res + '/' + res = res + comp + return res