commit 3ab58d155cbb5d5df3e01f81f2c7bb55617ea8ed Author: Georg Baum <b...@lyx.org> Date: Sat Nov 14 10:14:59 2015 +0100
Add experimental mode to save files with LyX Thanks Scott for the idea to modify the document. This seems to work, but I am not surer whether it is safe in all cases, so better warn if this is used. diff --git a/development/tools/updatedocs.py b/development/tools/updatedocs.py index ab47062..902248a 100644 --- a/development/tools/updatedocs.py +++ b/development/tools/updatedocs.py @@ -16,7 +16,7 @@ import os, re, string, sys, subprocess, shutil -def convertdir(docdir, prefix, lyx2lyx, systemlyxdir): +def convertdir(docdir, prefix, lyx2lyx, lyx, systemlyxdir): olddir = os.getcwd() os.chdir(docdir) for i in os.listdir("."): @@ -24,7 +24,7 @@ def convertdir(docdir, prefix, lyx2lyx, systemlyxdir): if i != 'attic': subdir = os.path.join(docdir, i) subprefix = os.path.join(prefix, i) - convertdir(subdir, subprefix, lyx2lyx, systemlyxdir) + convertdir(subdir, subprefix, lyx2lyx, lyx, systemlyxdir) continue (base, ext) = os.path.splitext(i) if ext != ".lyx": @@ -38,6 +38,12 @@ def convertdir(docdir, prefix, lyx2lyx, systemlyxdir): cmd = [lyx2lyx, old, '-s', systemlyxdir, '-o', i] sys.stderr.write('Converting %s\n' % os.path.join(prefix, i)) subprocess.call(cmd) + if lyx != '': + # This is a hack, but without modifying the doc LyX refuses to save and stays open + # FIXME: Is self-insert a; char-delete-backward always a noop? + # What if change-tracking is enabled? + cmd = [lyx, '-f', '-x', 'command-sequence self-insert a; char-delete-backward; buffer-write; lyx-quit', i] + subprocess.call(cmd) os.chdir(olddir) @@ -46,10 +52,15 @@ def main(argv): toolsdir = os.path.dirname(argv[0]) lyx2lyx = os.path.abspath(os.path.join(toolsdir, "../../lib/lyx2lyx/lyx2lyx")) systemlyxdir = os.path.abspath(os.path.join(toolsdir, "../../lib")) + if len(argv) > 1: + sys.stderr.write('Warning: Converting with LyX is experimental. Check the results carefully.\n')) + lyx = os.path.abspath(argv[1]) + else: + lyx = '' docpaths = ['../../lib/doc', '../../lib/examples', '../../lib/templates', '../../development/MacOSX/ReadMe'] for docpath in docpaths: docdir = os.path.abspath(os.path.join(toolsdir, docpath)) - convertdir(docdir, '', lyx2lyx, systemlyxdir) + convertdir(docdir, '', lyx2lyx, lyx, systemlyxdir) return 0