Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 909bc18

Browse files
committed
Recover from failed saves; when a file turns out to be a directory,
create a directory and moer the original file to the index.html.
1 parent 0a6363d commit 909bc18

1 file changed

Lines changed: 17 additions & 5 deletions

File tree

Tools/webchecker/websucker.py

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -73,10 +73,13 @@ def readhtml(self, url):
7373
def savefile(self, text, path):
7474
dir, base = os.path.split(path)
7575
makedirs(dir)
76-
f = open(path, "wb")
77-
f.write(text)
78-
f.close()
79-
self.message("saved %s", path)
76+
try:
77+
f = open(path, "wb")
78+
f.write(text)
79+
f.close()
80+
self.message("saved %s", path)
81+
except IOError, msg:
82+
self.message("didn't save %s: %s", path, str(msg))
8083

8184
def savefilename(self, url):
8285
type, rest = urllib.splittype(url)
@@ -93,7 +96,16 @@ def savefilename(self, url):
9396
return path
9497

9598
def makedirs(dir):
96-
if not dir or os.path.exists(dir):
99+
if not dir:
100+
return
101+
if os.path.exists(dir):
102+
if not os.path.isdir(dir):
103+
try:
104+
os.rename(dir, dir + ".bak")
105+
os.mkdir(dir)
106+
os.rename(dir + ".bak", os.path.join(dir, "index.html"))
107+
except os.error:
108+
pass
97109
return
98110
head, tail = os.path.split(dir)
99111
if not tail:

0 commit comments

Comments
 (0)