Index: cms/bin/generate_static_pages.py |
diff --git a/cms/bin/generate_static_pages.py b/cms/bin/generate_static_pages.py |
index 5eaeb1b9af236f2833bb27005a0ffe89a3e0b7d2..b02aaa3077147455a34594f2c0880c78c2b0daca 100644 |
--- a/cms/bin/generate_static_pages.py |
+++ b/cms/bin/generate_static_pages.py |
@@ -20,6 +20,7 @@ import codecs |
import ConfigParser |
import logging |
from argparse import ArgumentParser |
+import shutil |
from cms.utils import get_page_params, process_page |
from cms.sources import create_source |
@@ -38,16 +39,25 @@ def generate_pages(repo, output_dir): |
return |
known_files.add(outfile) |
- if os.path.exists(outfile): |
+ if os.path.isfile(outfile): |
Vasily Kuznetsov
2018/09/24 11:58:47
Are you sure if the two branches of this if statem
Tudor Avram
2018/09/24 14:04:51
Also, one more thing: do we want to raise an error
Vasily Kuznetsov
2018/09/24 14:42:23
I think if there's some kind of weird object in th
Tudor Avram
2018/09/24 16:10:00
Done.
|
with codecs.open(outfile, 'rb', encoding=encoding) as handle: |
if handle.read() == contents: |
return |
+ elif os.path.isdir(outfile): |
+ shutil.rmtree(outfile) |
try: |
Vasily Kuznetsov
2018/09/24 11:58:47
I think it would be good to extract this whole blo
Tudor Avram
2018/09/24 13:26:45
Yeah, I think it makes sense to put this into a di
Vasily Kuznetsov
2018/09/24 14:42:23
I don't expect many directories to be created when
Tudor Avram
2018/09/24 16:10:00
Done.
|
os.makedirs(os.path.dirname(outfile)) |
except OSError as e: |
if e.errno != errno.EEXIST: |
raise |
+ path_so_far = output_dir |
+ for part in path_parts[:-1]: |
+ path_so_far = os.path.join(path_so_far, part) |
+ if os.path.isfile(path_so_far): |
+ os.remove(path_so_far) |
+ os.makedirs(os.path.dirname(outfile)) |
+ break |
with codecs.open(outfile, 'wb', encoding=encoding) as handle: |
handle.write(contents) |