diff options
author | João Valverde <j@v6e.pt> | 2023-01-20 09:01:27 +0000 |
---|---|---|
committer | João Valverde <j@v6e.pt> | 2023-01-20 13:35:03 +0000 |
commit | c66fc43e5b3dd68f29ef661bb08c724f7f25118e (patch) | |
tree | 68bad085922a9a3fcb0dc65e058c560b4d30cec8 /tools | |
parent | be51acfffbc320f2458a41cf920b6bbb03565691 (diff) |
GUI: Ship authors as a Qt resource file
Diffstat (limited to 'tools')
-rwxr-xr-x | tools/make-authors-csv.py | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/tools/make-authors-csv.py b/tools/make-authors-csv.py new file mode 100755 index 0000000000..b3c82b5e4a --- /dev/null +++ b/tools/make-authors-csv.py @@ -0,0 +1,63 @@ +#!/usr/bin/env python3 +# +# Generate the authors.csv file. +# +# SPDX-License-Identifier: GPL-2.0-or-later +# +'''\ +Remove tasks from individual author entries from the AUTHORS file +for use in the "About" dialog. +''' + +import io +import re +import sys + + +def remove_tasks(stdinu8): + in_subinfo = False + all_lines = [] + + # Assume the first line is blank and skip it. make-authors-short.pl + # skipped over the UTF-8 BOM as well. Do we need to do that here? + + stdinu8.readline() + + for line in stdinu8: + + sub_m = re.search(r'(.*?)\s*\{', line) + if sub_m: + in_subinfo = True + all_lines.append(sub_m.group(1)) + elif '}' in line: + in_subinfo = False + nextline = next(stdinu8) + if not re.match('^\s*$', nextline): + # if '{' in nextline: + # stderru8.write("No blank line after '}', found " + nextline) + all_lines.append(nextline) + elif in_subinfo: + continue + else: + all_lines.append(line) + return all_lines + + +def main(): + stdinu8 = io.TextIOWrapper(sys.stdin.buffer, encoding='utf8') + stdoutu8 = io.TextIOWrapper(sys.stdout.buffer, encoding='utf8') + stderru8 = io.TextIOWrapper(sys.stderr.buffer, encoding='utf8') + + lines = remove_tasks(stdinu8) + patt = re.compile("(.*)[<(]([\\s'a-zA-Z0-9._%+-]+(\\[[Aa][Tt]\\])?[a-zA-Z0-9._%+-]+)[>)]") + + for line in lines: + match = patt.match(line) + if match: + name = match.group(1).strip() + mail = match.group(2).strip().replace("[AT]", "@") + stdoutu8.write("{},{}\n".format(name, mail)) + + +if __name__ == '__main__': + main() |