mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-24 21:55:29 +00:00
Replace TeXFiles.sh by TeXFiles.py
* src/frontends/controllers/tex_helpers.C: call TeXFiles.py * lib/scripts/TeXFiles.py: add * lib/scripts/TeXFiles.sh: remove * lib/scripts/convertDefault.py: add encoding line * lib/Makefile.am git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14238 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
913a4129aa
commit
f58609c765
@ -878,7 +878,7 @@ scriptsdir = $(pkgdatadir)/scripts
|
||||
# get appended to the names. So we use dist_scripts_DATA and chmod manually
|
||||
# in install-data-hook.
|
||||
dist_scripts_DATA = \
|
||||
scripts/TeXFiles.sh \
|
||||
scripts/TeXFiles.py \
|
||||
scripts/clean_dvi.py \
|
||||
scripts/convertDefault.py \
|
||||
scripts/fen2ascii.py \
|
||||
|
116
lib/scripts/TeXFiles.py
Executable file
116
lib/scripts/TeXFiles.py
Executable file
@ -0,0 +1,116 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: iso-8859-15 -*-
|
||||
|
||||
# file TeXFiles.py
|
||||
# This file is part of LyX, the document processor.
|
||||
# Licence details can be found in the file COPYING.
|
||||
|
||||
# \author Herbert Voß
|
||||
# \author Jean-Marc Lasgouttes
|
||||
# \author Jürgen Spitzmüller
|
||||
# \author Bo Peng
|
||||
|
||||
# Full author contact details are available in file CREDITS.
|
||||
|
||||
# all files -> without option
|
||||
# TeX class files -> option cls
|
||||
# TeX style files -> option sty
|
||||
# bibtex style files -> option bst
|
||||
# bibtex database files -> option bib
|
||||
#
|
||||
# with the help
|
||||
# of kpsewhich and creates a
|
||||
# bstFiles.lst, clsFiles.lst, styFiles.lst, bibFiles.lst
|
||||
# without any parameter all files are created.
|
||||
#
|
||||
# Herbert Voss <voss@perce.org>
|
||||
#
|
||||
# Updates from Jean-Marc Lasgouttes.
|
||||
#
|
||||
# bib support added by Juergen Spitzmueller (v0.3)
|
||||
#
|
||||
# translated to python by Bo Peng, so that the script only
|
||||
# relies on python and kpsewhich (no shell command is used).
|
||||
#
|
||||
|
||||
import os, sys, re
|
||||
|
||||
cls_stylefile = 'clsFiles.lst'
|
||||
sty_stylefile = 'styFiles.lst'
|
||||
bst_stylefile = 'bstFiles.lst'
|
||||
bib_files = 'bibFiles.lst'
|
||||
|
||||
def cmdOutput(cmd):
|
||||
'''utility function: run a command and get its output as a string
|
||||
cmd: command to run
|
||||
'''
|
||||
fout = os.popen(cmd)
|
||||
output = fout.read()
|
||||
fout.close()
|
||||
return output
|
||||
|
||||
# processing command line options
|
||||
if len(sys.argv) > 1:
|
||||
if sys.argv[1] in ['--help', '-help']:
|
||||
print '''Usage: TeXFiles.py [-version | cls | sty | bst | bib ]
|
||||
Default is without any Parameters,
|
||||
so that all files will be created'''
|
||||
sye.exit(0)
|
||||
else:
|
||||
types = sys.argv[1:]
|
||||
for type in types:
|
||||
if type not in ['cls', 'sty', 'bst', 'bib']:
|
||||
print 'ERROR: unknown type', type
|
||||
sys.exit(1)
|
||||
else:
|
||||
# if no parameter is specified, assume all
|
||||
types = ['cls', 'sty', 'bst', 'bib']
|
||||
|
||||
#
|
||||
# MS-DOS and MS-Windows define $COMSPEC or $ComSpec and use `;' to separate
|
||||
# directories in path lists whereas Unix uses `:'. Make an exception for
|
||||
# Cygwin, where we could have either teTeX (using `:') or MikTeX (using `;').
|
||||
# Create a variable that holds the right character to be used by the scripts.
|
||||
path_sep = os.pathsep
|
||||
if sys.platform == 'cygwin':
|
||||
# MikTeX's kpsewhich says "kpathsea emulation version x.x.x", whereas
|
||||
# teTeX's simply "kpathsea version x.x.x".
|
||||
if 'emulation' in cmdOutput('kpsewhich --version'):
|
||||
path_sep = ';'
|
||||
else:
|
||||
path_sep = ':'
|
||||
|
||||
# process each file type
|
||||
for type in types:
|
||||
print "Indexing files of type", type
|
||||
if type == 'cls':
|
||||
outfile = cls_stylefile
|
||||
kpsetype = '.tex'
|
||||
elif type == 'sty':
|
||||
outfile = sty_stylefile
|
||||
kpsetype = '.tex'
|
||||
elif type == 'bst':
|
||||
outfile = bst_stylefile
|
||||
kpsetype = '.bst'
|
||||
elif type == 'bib':
|
||||
outfile = bib_files
|
||||
kpsetype = '.bib'
|
||||
|
||||
dirs = cmdOutput('kpsewhich --show-path=' + kpsetype).replace('!!', '').strip()
|
||||
# remove excessive //
|
||||
dirs = re.sub('//+', '/', dirs)
|
||||
|
||||
file_ext = '.' + type
|
||||
out = open(outfile, 'w')
|
||||
for dir in dirs.split(path_sep):
|
||||
# for each valid directory
|
||||
if os.path.isdir(dir):
|
||||
# walk down the file hierarchy
|
||||
for root,path,files in os.walk(dir):
|
||||
# check file type
|
||||
for file in files:
|
||||
if len(file) > 4 and file[-4:] == file_ext:
|
||||
# force the use of / since miktex uses / even under windows
|
||||
print >> out, root.replace('\\', '/') + '/' + file
|
||||
out.close()
|
||||
|
@ -1,100 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
# file TeXFiles.sh
|
||||
# This file is part of LyX, the document processor.
|
||||
# Licence details can be found in the file COPYING.
|
||||
|
||||
# author Herbert Voß
|
||||
# author Jean-Marc Lasgouttes
|
||||
# author Jürgen Spitzmüller
|
||||
|
||||
# Full author contact details are available in file CREDITS.
|
||||
|
||||
# all files -> without option
|
||||
# TeX class files -> option cls
|
||||
# TeX style files -> option sty
|
||||
# bibtex style files -> option bst
|
||||
# bibtex database files -> option bib
|
||||
#
|
||||
# with the help
|
||||
# of kpsewhich and creates a
|
||||
# bstFiles.lst, clsFiles.lst, styFiles.lst, bibFiles.lst
|
||||
# without any parameter all files are created.
|
||||
#
|
||||
# Herbert Voss <voss@perce.org>
|
||||
#
|
||||
# Updates from Jean-Marc Lasgouttes.
|
||||
#
|
||||
# bib support added by Juergen Spitzmueller (v0.3)
|
||||
#
|
||||
CLS_STYLEFILE=clsFiles.lst
|
||||
STY_STYLEFILE=styFiles.lst
|
||||
BST_STYLEFILE=bstFiles.lst
|
||||
BIB_FILES=bibFiles.lst
|
||||
version='$Id: TeXFiles.sh,v 0.3 2003-02-14'
|
||||
progname=`echo $0 | sed 's%.*/%%'`
|
||||
usage="Usage: TeXFiles.sh [-version | cls | sty | bst | bib ]
|
||||
Default is without any Parameters,
|
||||
so that all files will be created"
|
||||
|
||||
types=$1
|
||||
test -z "$types" && types="cls sty bst bib"
|
||||
|
||||
#
|
||||
# MS-DOS and MS-Windows define $COMSPEC or $ComSpec and use `;' to separate
|
||||
# directories in path lists whereas Unix uses `:'. Make an exception for
|
||||
# Cygwin, where we could have either teTeX (using `:') or MikTeX (using `;').
|
||||
# Create a variable that holds the right character to be used by the scripts.
|
||||
DOSISH=no
|
||||
case `uname -s` in
|
||||
CYGWIN*|Cygwin*|cygwin*)
|
||||
# MikTeX's kpsewhich says "kpathsea emulation version x.x.x", whereas
|
||||
# teTeX's simply "kpathsea version x.x.x".
|
||||
if kpsewhich --version | grep emulation >/dev/null 2>&1; then DOSISH=yes; fi
|
||||
;;
|
||||
*) if test -n "$COMSPEC" || test -n "$ComSpec"; then DOSISH=yes; fi
|
||||
esac
|
||||
if test "$DOSISH" = "no"; then SEP=':'; else SEP=';'; fi
|
||||
|
||||
#
|
||||
# A copy of some stuff from mktex.opt, so we can run in the presence of
|
||||
# terminally damaged ls-R files.
|
||||
#
|
||||
if test "x$1" = x--help || test "x$1" = x-help; then
|
||||
echo "$usage"
|
||||
exit 0
|
||||
elif test "x$1" = x--version || test "x$1" = x-version; then
|
||||
echo "`basename $0` $version"
|
||||
kpsewhich --version
|
||||
exit 0
|
||||
fi
|
||||
|
||||
for type in $types ; do
|
||||
echo "Indexing files of type $type"
|
||||
case $type in
|
||||
cls) outfile=$CLS_STYLEFILE
|
||||
kpsetype=.tex;;
|
||||
sty) outfile=$STY_STYLEFILE
|
||||
kpsetype=.tex;;
|
||||
bst) outfile=$BST_STYLEFILE
|
||||
kpsetype=.bst;;
|
||||
bib) outfile=$BIB_FILES
|
||||
kpsetype=.bib;;
|
||||
*) echo "ERROR: unknown type $type"
|
||||
exit 1;;
|
||||
esac
|
||||
|
||||
rm -f $outfile
|
||||
touch $outfile
|
||||
|
||||
dirs=`kpsewhich --show-path=$kpsetype 2>/dev/null | tr "$SEP" " " | sed -e 's%/\{2,\}%/%g' -e 's%!!%%g'`
|
||||
|
||||
for dir in $dirs ; do
|
||||
find $dir -follow -name "*.$type" >>$outfile 2>/dev/null
|
||||
done
|
||||
|
||||
done
|
||||
#echo "list saved in $STYLEFILE"
|
||||
#echo `wc -l $CLS_STYLEFILE` # only for information
|
||||
#
|
||||
# this is the end my friends ... Jim Morrison and the Doors in "The End"
|
@ -1,4 +1,5 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: iso-8859-15 -*-
|
||||
|
||||
# file convertDefault.py
|
||||
# This file is part of LyX, the document processor.
|
||||
@ -21,4 +22,3 @@ if os.system(r'convert -depth 8 "%s" "%s"' % (sys.argv[1], sys.argv[2])) != 0:
|
||||
print >> sys.stderr, sys.argv[0], 'ERROR'
|
||||
print >> sys.stderr, 'Execution of "convert" failed.'
|
||||
sys.exit(1)
|
||||
|
||||
|
@ -52,11 +52,8 @@ void rescanTexStyles()
|
||||
Path p(package().user_support());
|
||||
Systemcall one;
|
||||
one.startscript(Systemcall::Wait,
|
||||
"sh " +
|
||||
quoteName(libFileSearch("scripts", "TeXFiles.sh")));
|
||||
// To be changed to
|
||||
// "python " +
|
||||
// quoteName(libFileSearch("scripts", "TeXFiles.py")));
|
||||
"python " +
|
||||
quoteName(libFileSearch("scripts", "TeXFiles.py")));
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user