chiark / gitweb /
httpauth.py: Don't crash if Base-64 decoding of the CSRF token fails.
[chopwood] / agpl.py
diff --git a/agpl.py b/agpl.py
index b49153b4e8fea57cd91fbfaaac0631fdec5b812c..a35ea3f4c9416d23fa7bbac959866dc9eee3c94b 100644 (file)
--- a/agpl.py
+++ b/agpl.py
@@ -142,7 +142,7 @@ def filez(cmd):
         if z < 0: break
         f = buf[i:z]
         i = z + 1
-        if f == '.': continue
+        if f.rstrip('/') == '.': continue
         if f.startswith('./'): f = f[2:]
         yield f
 
@@ -198,28 +198,27 @@ def dump_dir(name, dir, dirmap, tf, root):
 
     ## Work through each file.
     for file in lister(dir):
-      full = OS.path.join(dir, file)
-      tarname = OS.path.join(root, name, file)
-      skip = False
-
-      ## Check for symbolic links.  If we find one that points to another
-      ## directory we're going to dump separately then fiddle it so that it
-      ## works in the directory tree we're going to make.
-      if OS.path.islink(full):
-        dest = OS.path.realpath(full)
-        for d, local in dirmap:
-          if dest.startswith(d):
-            fix = OS.path.relpath(OS.path.join('/', local, dest[len(d):]),
-                                  OS.path.join('/', name,
-                                               OS.path.dirname(file)))
-            st = OS.stat(full)
-            ti = tf.gettarinfo(full, tarname)
-            ti.linkname = fix
-            tf.addfile(ti)
-            skip = True
-
-      ## Nothing special, so just dump the file.  Or whatever it is.
-      if not skip:
+      with U.Escape() as skip:
+        full = OS.path.join(dir, file)
+        tarname = OS.path.join(root, name, file)
+
+        ## Check for symbolic links.  If we find one that points to another
+        ## directory we're going to dump separately then fiddle it so that it
+        ## works in the directory tree we're going to make.
+        if OS.path.islink(full):
+          dest = OS.path.realpath(full)
+          for d, local in dirmap:
+            if dest.startswith(d):
+              fix = OS.path.relpath(OS.path.join('/', local, dest[len(d):]),
+                                    OS.path.join('/', name,
+                                                 OS.path.dirname(file)))
+              st = OS.stat(full)
+              ti = tf.gettarinfo(full, tarname)
+              ti.linkname = fix
+              tf.addfile(ti)
+              skip()
+
+        ## Nothing special, so just dump the file.  Or whatever it is.
         tf.add(full, tarname, recursive = False)
 
 def source(out):