From a2c933906647bf7adc0f58490005dd8f1b9734ba Mon Sep 17 00:00:00 2001 From: John Mandereau Date: Tue, 3 Jul 2007 00:21:27 +0200 Subject: [PATCH] Add script for automatically updating ly snippets in translated docs This script also allows to keep some ly snippets different from those in the English docs (see future TRANSLATION update for details). --- Documentation/GNUmakefile | 6 ++ buildscripts/update-snippets.py | 102 ++++++++++++++++++++++++++++++++ 2 files changed, 108 insertions(+) create mode 100644 buildscripts/update-snippets.py diff --git a/Documentation/GNUmakefile b/Documentation/GNUmakefile index 84466887e0..3041be6fdf 100644 --- a/Documentation/GNUmakefile +++ b/Documentation/GNUmakefile @@ -30,6 +30,9 @@ txt-to-html: po-update: make -C po po-update +all-translation-update: po-update + $(foreach lang, $(LANGS), make ISOLANG=$(lang) skeleton-update snippet-update &&) true + ifneq ($(ISOLANG),) new-lang: @if (( $$(file -b $(ISOLANG)) == directory )) 2>/dev/null; \ @@ -52,4 +55,7 @@ check-translation: skeleton-update: $(PYTHON) $(buildscript-dir)/texi-langutils.py -d $(outdir) -b "UNTRANSLATED NODE: IGNORE ME" -l $(ISOLANG) --skeleton ../user/lilypond.tely $(PYTHON) $(buildscript-dir)/texi-skeleton-update.py $(ISOLANG)/user $(outdir) + +snippet-update: + $(PYTHON) $(buildscript-dir)/update-snippets.py user $(ISOLANG)/user '*.itely' endif diff --git a/buildscripts/update-snippets.py b/buildscripts/update-snippets.py new file mode 100644 index 0000000000..d5503c09a6 --- /dev/null +++ b/buildscripts/update-snippets.py @@ -0,0 +1,102 @@ +#!@PYTHON@ +# update-snippets.py + +# USAGE: update-snippets.py REFERENCE-DIR TARGET-DIR FILES +# +# update ly snippets in TARGET-DIR/FILES with snippets from REFERENCE-DIR/FILES +# +# More precisely, each existing FILE in TARGET-DIR is matched to the FILE in +# REFERENCE-DIR (it the latter does not exist, a warning is given). +# +# Shell wildcards expansion is performed on FILES. +# This script currently supports Texinfo format. +# Ly snippets preceded with a line containing '@c KEEP LY' in TARGET-DIR/FILES +# will not be updated. +# An error occurs if REFERENCE-DIR/FILE and TARGET-DIR/FILE do not have the +# same snippets count. + +import sys +import os +import glob +import re + +print "update-snippets.py" + +comment_re = re.compile (r'(? 0 and (not target_source[j-1].startswith ('@c KEEP LY')) and target_source[j] != ref_source[k]: + target_source[j] = ref_source[k] + c += 1 + changed_snippets_count += 1 + f = open (file, 'w') + f.write (''.join (target_source)) + sys.stderr.write ('%s: %d/%d snippets updated\n' % (file, c, snippet_count)) + +sys.stderr.write ('\nTotal: %d snippets, %d updated snippets.\n' % (total_snippet_count, changed_snippets_count)) +sys.exit (exit_code) -- 2.39.5