]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Recover from failed saves; when a file turns out to be a directory,
authorGuido van Rossum <guido@python.org>
Sun, 3 Jan 1999 13:06:00 +0000 (13:06 +0000)
committerGuido van Rossum <guido@python.org>
Sun, 3 Jan 1999 13:06:00 +0000 (13:06 +0000)
create a directory and moer the original file to the index.html.

Tools/webchecker/websucker.py

index 59da51b0a49634eb29c38c5042d9d517c3281a90..67e493dc30c412eb8ab2263159942c99aba51ef1 100755 (executable)
@@ -73,10 +73,13 @@ class Sucker(webchecker.Checker):
     def savefile(self, text, path):
         dir, base = os.path.split(path)
         makedirs(dir)
-        f = open(path, "wb")
-        f.write(text)
-        f.close()
-        self.message("saved %s", path)
+        try:
+            f = open(path, "wb")
+            f.write(text)
+            f.close()
+            self.message("saved %s", path)
+        except IOError, msg:
+            self.message("didn't save %s: %s", path, str(msg))
 
     def savefilename(self, url):
         type, rest = urllib.splittype(url)
@@ -93,7 +96,16 @@ class Sucker(webchecker.Checker):
         return path
 
 def makedirs(dir):
-    if not dir or os.path.exists(dir):
+    if not dir:
+        return
+    if os.path.exists(dir):
+        if not os.path.isdir(dir):
+            try:
+                os.rename(dir, dir + ".bak")
+                os.mkdir(dir)
+                os.rename(dir + ".bak", os.path.join(dir, "index.html"))
+            except os.error:
+                pass
         return
     head, tail = os.path.split(dir)
     if not tail: