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
 

Reply via email to