Spaces:
Sleeping
Sleeping
# grand-replace.py | |
# | |
# This file is part of LilyPond, the GNU music typesetter. | |
# | |
# Copyright (C) 2009--2020 Jan Nieuwenhuizen <[email protected]> | |
# | |
# LilyPond is free software: you can redistribute it and/or modify | |
# it under the terms of the GNU General Public License as published by | |
# the Free Software Foundation, either version 3 of the License, or | |
# (at your option) any later version. | |
# | |
# LilyPond is distributed in the hope that it will be useful, | |
# but WITHOUT ANY WARRANTY; without even the implied warranty of | |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
# GNU General Public License for more details. | |
# | |
# You should have received a copy of the GNU General Public License | |
# along with LilyPond. If not, see <http://www.gnu.org/licenses/>. | |
import datetime | |
import os | |
import re | |
import sys | |
# | |
import pytt | |
dry_run = False | |
def read_pipe(cmd, ignore_errors=False): | |
pipe = os.popen(cmd) | |
val = pipe.read() | |
if pipe.close() and not ignore_errors: | |
raise SystemFailed('Pipe failed: %(cmd)s' % locals()) | |
return val | |
def filter_out(p, lst): | |
return [x for x in lst if not p(x)] | |
copied_files = [ | |
'help2man.pl', | |
'mf2pt1.mp', | |
'mf2pt1.pl', | |
'texinfo.tex', | |
'txi-ca.tex', | |
'txi-de.tex', | |
'txi-en.tex', | |
'txi-es.tex', | |
'txi-fr.tex', | |
'txi-hu.tex', | |
'txi-it.tex', | |
'txi-ja.tex', | |
'txi-nl.tex', | |
'txi-pt.tex', | |
] | |
def main(): | |
files = filter_out(lambda x: (os.path.basename(x) in copied_files | |
or 'CHANGES' in x or 'ChangeLog' in x), | |
read_pipe('git ls-files').split()) | |
year = datetime.datetime.now().year | |
last_year = year - 1 | |
last_year_1d = last_year % 10 | |
for f in files: | |
pytt.pytt(r'(Copyright|\(c\)|\(C\)|@copyright\{\})\s*%(last_year)s(?=[^-]|$)' % locals(), | |
r'\1 %(last_year)s--%(year)s' % locals(), | |
f) | |
pytt.pytt(r'(Copyright|\(c\)|\(C\)|@copyright\{\})\s*([^-]*)--(20[0-9][0-%(last_year_1d)s])' % locals(), | |
r'\1 \2--%(year)s' % locals(), | |
f) | |
if __name__ == '__main__': | |
main() | |