public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH] mklog: Add --append option to auto add generate ChangeLog to patch file
@ 2023-07-12  4:01 Lehua Ding
  2023-07-12 16:04 ` Jeff Law
  2023-07-21  9:58 ` Martin Jambor
  0 siblings, 2 replies; 10+ messages in thread
From: Lehua Ding @ 2023-07-12  4:01 UTC (permalink / raw)
  To: gcc-patches; +Cc: juzhe.zhong, jeffreyalaw, mliska

Hi,

This tiny patch add --append option to mklog.py that support add generated
ChangeLog to the corresponding patch file. With this option there is no need
to manually copy the generated ChangeLog to the patch file. e.g.:

Run `mklog.py -a /path/to/this/patch` will add the generated ChangeLog

```
contrib/ChangeLog:

	* mklog.py:
```

to the right place of the /path/to/this/patch file.

Best,
Lehua

contrib/ChangeLog:

	* mklog.py: Add --append option.

---
 contrib/mklog.py | 27 ++++++++++++++++++++++++++-
 1 file changed, 26 insertions(+), 1 deletion(-)

diff --git a/contrib/mklog.py b/contrib/mklog.py
index 777212c98d7..26230b9b4f2 100755
--- a/contrib/mklog.py
+++ b/contrib/mklog.py
@@ -358,6 +358,8 @@ if __name__ == '__main__':
                              'file')
     parser.add_argument('--update-copyright', action='store_true',
                         help='Update copyright in ChangeLog files')
+    parser.add_argument('-a', '--append', action='store_true',
+                        help='Append the generate ChangeLog to the patch file')
     args = parser.parse_args()
     if args.input == '-':
         args.input = None
@@ -370,7 +372,30 @@ if __name__ == '__main__':
     else:
         output = generate_changelog(data, args.no_functions,
                                     args.fill_up_bug_titles, args.pr_numbers)
-        if args.changelog:
+        if args.append:
+            if (not args.input):
+                raise Exception("`-a or --append` option not support standard input")
+            lines = []
+            with open(args.input, 'r', newline='\n') as f:
+                # 1 -> not find the possible start of diff log
+                # 2 -> find the possible start of diff log
+                # 3 -> finish add ChangeLog to the patch file
+                maybe_diff_log = 1
+                for line in f:
+                    if maybe_diff_log == 1 and line == "---\n":
+                        maybe_diff_log = 2
+                    elif maybe_diff_log == 2 and \
+                         re.match("\s[^\s]+\s+\|\s\d+\s[+\-]+\n", line):
+                        lines += [output, "---\n", line]
+                        maybe_diff_log = 3
+                    else:
+                        # the possible start is not the true start.
+                        if maybe_diff_log == 2:
+                            maybe_diff_log = 1
+                        lines.append(line)
+            with open(args.input, "w") as f:
+                f.writelines(lines)
+        elif args.changelog:
             lines = open(args.changelog).read().split('\n')
             start = list(takewhile(skip_line_in_changelog, lines))
             end = lines[len(start):]
-- 
2.36.1


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2023-07-21 14:43 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-07-12  4:01 [PATCH] mklog: Add --append option to auto add generate ChangeLog to patch file Lehua Ding
2023-07-12 16:04 ` Jeff Law
2023-07-13  3:29   ` Lehua Ding
2023-07-21  9:58 ` Martin Jambor
2023-07-21 10:22   ` =?gb18030?B?TGVodWEgRGluZw==?=
2023-07-21 10:39     ` Martin Jambor
2023-07-21 10:45       ` =?gb18030?B?TGVodWEgRGluZw==?=
2023-07-21 10:57   ` Lehua Ding
2023-07-21 11:56     ` Martin Jambor
2023-07-21 14:43       ` Lehua Ding

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).