mirror of
https://git.lyx.org/repos/lyx.git
synced 2025-01-13 11:52:45 +00:00
29ae7b31c2
The "force" argument is more robust than trying to make an edit and then inverse the edit. The "force" argument exists since fe09ddf1.
80 lines
2.7 KiB
Python
Executable File
80 lines
2.7 KiB
Python
Executable File
#! /usr/bin/python3
|
|
# -*- coding: utf-8 -*-
|
|
|
|
# file updatedocs.py
|
|
# This file is part of LyX, the document processor.
|
|
# Licence details can be found in the file COPYING.
|
|
|
|
# author Georg Baum
|
|
|
|
# Full author contact details are available in file CREDITS
|
|
|
|
# This script converts documentation .lyx files to current format
|
|
# The old files are backuped with extension ".old"
|
|
|
|
|
|
import os, re, string, sys, subprocess, shutil
|
|
from gen_lfuns import main as genlfuns
|
|
|
|
|
|
def convertdir(docdir, prefix, lyx2lyx, lyx, systemlyxdir):
|
|
olddir = os.getcwd()
|
|
os.chdir(docdir)
|
|
for i in os.listdir("."):
|
|
if os.path.isdir(i):
|
|
if i != 'attic':
|
|
subdir = os.path.join(docdir, i)
|
|
subprefix = os.path.join(prefix, i)
|
|
convertdir(subdir, subprefix, lyx2lyx, lyx, systemlyxdir)
|
|
continue
|
|
(base, ext) = os.path.splitext(i)
|
|
if ext != ".lyx":
|
|
continue
|
|
old = i + ".old"
|
|
shutil.copy(i, old)
|
|
if sys.executable and sys.executable != '':
|
|
cmd = [sys.executable, lyx2lyx, old, '-s', systemlyxdir, '-o', i]
|
|
else:
|
|
# assume that python is in the path
|
|
cmd = [lyx2lyx, old, '-s', systemlyxdir, '-o', i]
|
|
sys.stderr.write('Converting %s\n' % os.path.join(prefix, i))
|
|
subprocess.call(cmd)
|
|
if lyx != '':
|
|
cmd = [lyx, '-f', '-x', 'command-sequence buffer-write force; lyx-quit', i]
|
|
subprocess.call(cmd)
|
|
os.chdir(olddir)
|
|
|
|
|
|
def main(argv):
|
|
|
|
toolsdir = os.path.dirname(argv[0])
|
|
|
|
# first generate LFUNs.lyx
|
|
lyxaction = os.path.abspath(os.path.join(toolsdir, "../../src/LyXAction.cpp"))
|
|
lfunspath = os.path.abspath(os.path.join(toolsdir, "../../lib/doc"))
|
|
lfuns = os.path.join(lfunspath, "LFUNs.lyx")
|
|
# genlfuns refuses to overwrite files
|
|
if os.path.exists(lfuns):
|
|
os.rename(lfuns, os.path.join(lfunspath, "LFUNs.lyx.old"))
|
|
# genlfuns requires a trailing slash
|
|
genlfuns(["genlfuns", lyxaction, lfunspath + os.sep])
|
|
|
|
# then update all docs
|
|
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, lyx, systemlyxdir)
|
|
|
|
return 0
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main(sys.argv)
|