for prefix, ext_list in pages_dict.items ():
for lang_ext in ext_list:
file_name = langdefs.lang_file_name (prefix, lang_ext, '.html')
- in_f = open (file_name)
- s = in_f.read()
- in_f.close()
-
- s = s.replace ('%', '%%')
- s = hack_urls (s, prefix, target, bool (int (versiontup[1]) % 2))
- s = add_header (s, prefix)
-
- ### add footer
- if footer_tag_re.search (s) == None:
- if 'web' in file_name:
- s = add_footer (s, footer_tag + web_footer)
- else:
- s = add_footer (s, footer_tag + footer)
-
- available, missing = find_translations (prefix, lang_ext)
- page_flavors = process_links (s, prefix, lang_ext, file_name, missing, target)
- # Add menu after stripping: must not have autoselection for language menu.
- page_flavors = add_menu (page_flavors, prefix, available, target, translation)
- for k in page_flavors:
- page_flavors[k][1] = page_flavors[k][1] % subst[page_flavors[k][0]]
- out_f = open (name_filter (k), 'w')
- out_f.write (page_flavors[k][1])
- out_f.close()
+ source_time = os.path.getmtime(file_name)
+ dest_time = 0
+ if os.path.exists(name_filter(file_name)):
+ dest_time = os.path.getmtime(name_filter(file_name))
+ if dest_time < source_time:
+
+ in_f = open (file_name)
+ s = in_f.read()
+ in_f.close()
+
+ s = s.replace ('%', '%%')
+ s = hack_urls (s, prefix, target, bool (int (versiontup[1]) % 2))
+ s = add_header (s, prefix)
+
+ ### add footer
+ if footer_tag_re.search (s) == None:
+ if 'web' in file_name:
+ s = add_footer (s, footer_tag + web_footer)
+ else:
+ s = add_footer (s, footer_tag + footer)
+
+ available, missing = find_translations (prefix, lang_ext)
+ page_flavors = process_links (s, prefix, lang_ext, file_name, missing, target)
+ # Add menu after stripping: must not have autoselection for language menu.
+ page_flavors = add_menu (page_flavors, prefix, available, target, translation)
+ for k in page_flavors:
+ page_flavors[k][1] = page_flavors[k][1] % subst[page_flavors[k][0]]
+ out_f = open (name_filter (k), 'w')
+ out_f.write (page_flavors[k][1])
+ out_f.close()
# if the page is translated, a .en.html symlink is necessary for content negotiation
if target == 'online' and ext_list != ['']:
os.symlink (os.path.basename (prefix) + '.html', name_filter (prefix + '.en.html'))
for t in targets:
out_root = target_pattern % t
strip_file_name[t] = lambda s: os.path.join (target_pattern % t, (strip_re.sub ('', s)))
- os.mkdir (out_root)
- map (os.mkdir, [os.path.join (out_root, d) for d in dirs])
+ if not os.path.exists (out_root):
+ os.mkdir (out_root)
+ for d in dirs:
+ new_dir = os.path.join (out_root, d)
+ if not os.path.exists (new_dir):
+ os.mkdir (new_dir)
for f in hardlinked_files:
- os.link (f, strip_file_name[t] (f))
+ if not os.path.isfile (strip_file_name[t] (f)):
+ os.link (f, strip_file_name[t] (f))
for l in symlinks:
p = mirrortree.new_link_path (os.path.normpath (os.readlink (l)), os.path.dirname (l), strip_re)
dest = strip_file_name[t] (l)