]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Support packing whole trees.
authorGuido van Rossum <guido@python.org>
Sun, 7 Apr 1991 13:40:56 +0000 (13:40 +0000)
committerGuido van Rossum <guido@python.org>
Sun, 7 Apr 1991 13:40:56 +0000 (13:40 +0000)
Lib/lib-old/packmail.py
Lib/packmail.py

index c7bebe89c19c809e30549dacfa621a7fcfb79e13..a964d6d11b402e50186324260aa90ea765af75da 100644 (file)
@@ -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
index c7bebe89c19c809e30549dacfa621a7fcfb79e13..a964d6d11b402e50186324260aa90ea765af75da 100644 (file)
@@ -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