X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=python%2Fauxiliar%2Fbuildlib.py;h=a2a553aa04f8d4edcf94f1d5d10038d28548f15d;hb=5d84bfad4626892bcffd05adcced53c8a2329047;hp=cd99586ff81038832afcae4b9c31468cde8766b5;hpb=a9d9433bc7b95cb2d4b3d96eefce7a8437c0d44e;p=lilypond.git diff --git a/python/auxiliar/buildlib.py b/python/auxiliar/buildlib.py index cd99586ff8..a2a553aa04 100644 --- a/python/auxiliar/buildlib.py +++ b/python/auxiliar/buildlib.py @@ -19,23 +19,62 @@ def read_pipe (command): error = code + ' ' + error return (output, error) +### Renamed files map to ensure continuity of file history +## Map of new_name: old_name +renames_map = { + 'usage.tely': 'user/lilypond-program.tely', + 'notation.tely': 'user/lilypond.tely', + 'learning.tely': 'user/lilypond-learning.tely', + 'changes.tely': 'topdocs/NEWS.tely', +} + +# FIXME: Hardcoded file names!? +manuals_subdirectories_re = \ + re.compile ('(usage|automated-engraving|changes|essay|extending|web|learning|notation)/') + +def add_old_name (file_path): + for new_path in renames_map: + if file_path.endswith (new_path): + old_file_path = file_path.replace (new_path, + renames_map[new_path]) + break + else: + if file_path.endswith ('macros.itexi'): + old_file_path = file_path.replace ('macros.itexi', + 'user/macros.itexi') + elif file_path.endswith ('.itely'): + old_file_path = manuals_subdirectories_re.sub ('user/', + file_path) + elif 'snippets/' in file_path: + old_file_path = file_path.replace ('snippets/', + '../input/lsr/') + else: + return file_path + return file_path + ' ' + old_file_path + revision_re = re.compile ('GIT [Cc]ommittish:\s+([a-f0-9]+)') -vc_diff_cmd = 'git diff %(color_flag)s %(revision)s HEAD -- %(original)s | cat' +vc_diff_cmd = 'git diff -M %(color_flag)s %(revision)s \ +%(upper_revision)s -- %(original_with_old_name)s | cat' +no_committish_fatal_error = """error: %s: no 'GIT committish: ' found. +Please check the whole file against the original in English, then +fill in HEAD committish in the header. +""" -def check_translated_doc (original, translated_file, translated_contents, color=False): +def check_translated_doc (original, translated_file, translated_contents, + color=False, upper_revision='HEAD'): m = revision_re.search (translated_contents) if not m: - sys.stderr.write ('error: ' + translated_file + \ - ": no 'GIT committish: ' found.\nPlease check " + \ - 'the whole file against the original in English, then ' + \ - 'fill in HEAD committish in the header.\n') + sys.stderr.write (no_committish_fatal_error % translated_file) sys.exit (1) revision = m.group (1) + if revision == '0': + return '', 0 if color: - color_flag = '--color' + color_flag = '--color --color-words' else: color_flag = '--no-color' + original_with_old_name = add_old_name (original) c = vc_diff_cmd % vars () if verbose: sys.stderr.write ('running: ' + c)