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:
Bo Peng 2006-06-27 02:39:03 +00:00
parent 913a4129aa
commit f58609c765
5 changed files with 120 additions and 107 deletions

View File

@ -878,7 +878,7 @@ scriptsdir = $(pkgdatadir)/scripts
# get appended to the names. So we use dist_scripts_DATA and chmod manually # get appended to the names. So we use dist_scripts_DATA and chmod manually
# in install-data-hook. # in install-data-hook.
dist_scripts_DATA = \ dist_scripts_DATA = \
scripts/TeXFiles.sh \ scripts/TeXFiles.py \
scripts/clean_dvi.py \ scripts/clean_dvi.py \
scripts/convertDefault.py \ scripts/convertDefault.py \
scripts/fen2ascii.py \ scripts/fen2ascii.py \

116
lib/scripts/TeXFiles.py Executable file
View 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()

View File

@ -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"

View File

@ -1,4 +1,5 @@
#!/usr/bin/env python #!/usr/bin/env python
# -*- coding: iso-8859-15 -*-
# file convertDefault.py # file convertDefault.py
# This file is part of LyX, the document processor. # 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, sys.argv[0], 'ERROR'
print >> sys.stderr, 'Execution of "convert" failed.' print >> sys.stderr, 'Execution of "convert" failed.'
sys.exit(1) sys.exit(1)

View File

@ -52,11 +52,8 @@ void rescanTexStyles()
Path p(package().user_support()); Path p(package().user_support());
Systemcall one; Systemcall one;
one.startscript(Systemcall::Wait, one.startscript(Systemcall::Wait,
"sh " + "python " +
quoteName(libFileSearch("scripts", "TeXFiles.sh"))); quoteName(libFileSearch("scripts", "TeXFiles.py")));
// To be changed to
// "python " +
// quoteName(libFileSearch("scripts", "TeXFiles.py")));
} }