vlc/buildsystem/gen-vlc-about.py

35 lines
1.3 KiB
Python

#!/usr/bin/env python3
import os, re, argparse
parser = argparse.ArgumentParser()
# Input files
parser.add_argument("copying", type=argparse.FileType('r', encoding='UTF-8'))
parser.add_argument("thanks", type=argparse.FileType('r', encoding='UTF-8'))
parser.add_argument("authors", type=argparse.FileType('r', encoding='UTF-8'))
# Output files
parser.add_argument("output", type=argparse.FileType('w', encoding='UTF-8'))
args = parser.parse_args()
# Regex to remove emails in thanks and authors files
email_regex = re.compile(r'<.*.>')
output_str = '/* Automatically generated file - DO NOT EDIT */\n\n'
with args.copying:
output_str += 'static const char psz_license[] =\n"'
output_str += args.copying.read().replace('"', '\\"').replace('\r', '').replace('\n', '\\n"\n"')
output_str += '";\n\n'
with args.thanks:
output_str += 'static const char psz_thanks[] =\n"'
output_str += email_regex.sub('', args.thanks.read().replace('"', '\\"').replace('\r', '').replace('\n', '\\n"\n"'))
output_str += '";\n\n'
with args.authors:
output_str += 'static const char psz_authors[] =\n"'
output_str += email_regex.sub('', args.authors.read().replace('"', '\\"').replace('\r', '').replace('\n', '\\n"\n"'))
output_str += '";\n\n'
with args.output:
args.output.write(output_str)