You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ju...@apache.org on 2018/07/20 14:36:35 UTC
svn commit: r1836350 - /subversion/trunk/tools/dist/release.py
Author: julianfoad
Date: Fri Jul 20 14:36:35 2018
New Revision: 1836350
URL: http://svn.apache.org/viewvc?rev=1836350&view=rev
Log:
Teach 'release.py write-news' to insert the output into a file.
With the new option '--edit-html-file=FILE', it inserts the news item
before the first existing news item in FILE instead of printing it.
(It does not take care of remove old news items from 'index.html'.)
* /home/julianfoad/src/subversion-g/tools/dist/release.py
(write_news): Insert the news before a '<div class="h3" id="news-' line.
(main): Accept '--edit-html-file=' option.
Modified:
subversion/trunk/tools/dist/release.py
Modified: subversion/trunk/tools/dist/release.py
URL: http://svn.apache.org/viewvc/subversion/trunk/tools/dist/release.py?rev=1836350&r1=1836349&r2=1836350&view=diff
==============================================================================
--- subversion/trunk/tools/dist/release.py (original)
+++ subversion/trunk/tools/dist/release.py Fri Jul 20 14:36:35 2018
@@ -51,6 +51,7 @@ import operator
import itertools
import subprocess
import argparse # standard in Python 2.7
+import io
# Find ezt, using Subversion's copy, if there isn't one on the system.
try:
@@ -977,7 +978,22 @@ def write_news(args):
template = ezt.Template()
template.parse(get_tmplfile(template_filename).read())
- template.generate(sys.stdout, data)
+
+ # Insert the output into an existing file if requested, else print it
+ if args.edit_html_file:
+ tmp_name = args.edit_html_file + '.tmp'
+ with open(args.edit_html_file, 'r') as f, open(tmp_name, 'w') as g:
+ inserted = False
+ for line in f:
+ if not inserted and line.startswith('<div class="h3" id="news-'):
+ template.generate(g, data)
+ g.write('\n')
+ inserted = True
+ g.write(line)
+ os.remove(args.edit_html_file)
+ os.rename(tmp_name, args.edit_html_file)
+ else:
+ template.generate(sys.stdout, data)
def get_sha1info(args):
@@ -1510,6 +1526,9 @@ def main():
subparser.set_defaults(func=write_news)
subparser.add_argument('--announcement-url',
help='''The URL to the archived announcement email.''')
+ subparser.add_argument('--edit-html-file',
+ help='''Insert the text into this file
+ news.html, index.html).''')
subparser.add_argument('version', type=Version,
help='''The release label, such as '1.7.0-alpha1'.''')