This patch installs lyx2lyx into the path,and places the support .py into $DATADIR/lyx2lyx
It does NOT fix using non-installed lyx. Any comments ? the only change to the script is to import the path of the .py files ? If this is OK I will commit it regards john -- "When your name is Winner, that's it. You don't need a nickname." - Loser Lane
Index: config/configure.ac =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/config/configure.ac,v retrieving revision 1.4 diff -u -r1.4 configure.ac --- config/configure.ac 14 Aug 2002 21:22:27 -0000 1.4 +++ config/configure.ac 28 Aug 2002 19:06:29 -0000 @@ -280,8 +280,9 @@ LyX binary dir: ${real_bindir}\n\ LyX files dir: ${real_datadir}\n" - AC_SUBST(VERSION_INFO) +dnl lyx2lyx needs this +AC_SUBST(real_datadir) ### Finish the work. AC_CONFIG_SUBDIRS(lib lib/reLyX) @@ -295,6 +296,8 @@ config/Makefile \ development/lyx.spec \ lib/Makefile \ + lib/lyx2lyx/Makefile \ + lib/lyx2lyx/lyx2lyx \ intl/Makefile \ po/Makefile.in \ sourcedoc/Doxyfile \ Index: config/configure.in =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/config/configure.in,v retrieving revision 1.4 diff -u -r1.4 configure.in --- config/configure.in 14 Aug 2002 21:22:27 -0000 1.4 +++ config/configure.in 28 Aug 2002 19:06:32 -0000 @@ -283,6 +283,8 @@ AC_SUBST(VERSION_INFO) +dnl lyx2lyx needs this +AC_SUBST(real_datadir) ### Finish the work. AC_CONFIG_SUBDIRS(lib lib/reLyX) @@ -296,6 +298,8 @@ config/Makefile \ development/lyx.spec \ lib/Makefile \ + lib/lyx2lyx/Makefile \ + lib/lyx2lyx/lyx2lyx \ intl/Makefile \ po/Makefile.in \ sourcedoc/Doxyfile \ Index: lib/Makefile.am =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/lib/Makefile.am,v retrieving revision 1.46 diff -u -r1.46 Makefile.am --- lib/Makefile.am 26 Apr 2002 10:32:23 -0000 1.46 +++ lib/Makefile.am 28 Aug 2002 19:06:35 -0000 @@ -2,7 +2,7 @@ DISTCLEANFILES = *.orig *.rej *~ *.bak core textclass.lst packages.lst \ lyxrc.defaults doc/LyXConfig.lyx doc/LaTeXConfig.lyx MAINTAINERCLEANFILES = $(srcdir)/Makefile.in -SUBDIRS = reLyX +SUBDIRS = reLyX lyx2lyx CHMOD=chmod Index: lib/lyx2lyx/.cvsignore =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/lib/lyx2lyx/.cvsignore,v retrieving revision 1.1 diff -u -r1.1 .cvsignore --- lib/lyx2lyx/.cvsignore 2 Aug 2002 15:50:51 -0000 1.1 +++ lib/lyx2lyx/.cvsignore 28 Aug 2002 19:06:41 -0000 @@ -1 +1,4 @@ *.pyc +lyx2lyx +Makefile.in +Makefile Index: lib/lyx2lyx/Makefile.am =================================================================== RCS file: lib/lyx2lyx/Makefile.am diff -N lib/lyx2lyx/Makefile.am --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ lib/lyx2lyx/Makefile.am 28 Aug 2002 19:06:41 -0000 @@ -0,0 +1,26 @@ +AUTOMAKE_OPTIONS = foreign +DISTCLEANFILES= *.orig *.rej *~ *.bak +MAINTAINERCLEANFILES = $(srcdir)/Makefile.in +LYXDATADIR = lyx2lyx +bin_SCRIPTS = lyx2lyx + +LIBINSTFILES = error.py lyxconvert_215.py lyxconvert_217.py lyxconvert_220.py \ + lyxconvert_216.py lyxconvert_218.py parser_tools.py +EXTRA_DIST = $(LIBINSTFILES) + +libinstalldirs: + $(mkinstalldirs) $(DESTDIR)$(pkgdatadir)/$(LYXDATADIR) + +install-data-local: libinstalldirs + files=`cd $(srcdir) ; echo $(LIBINSTFILES)` ; \ + for i in $$files ; do \ + $(INSTALL_DATA) $(srcdir)/$$i $(DESTDIR)$(pkgdatadir)/lyx2lyx/$$i ; \ + done ; + +uninstall-local: + @$(NORMAL_UNINSTALL) + files=`cd $(srcdir) ; echo $(LIBINSTFILES)` ; \ + for i in $$files ; do \ + rm -f $(pkgdatadir)/$(LYXDATADIR)/$$i ; \ + done ; \ + rm -rf $(pkgdatadir)/$(LYXDATADIR) Index: lib/lyx2lyx/lyx2lyx =================================================================== RCS file: lib/lyx2lyx/lyx2lyx diff -N lib/lyx2lyx/lyx2lyx --- lib/lyx2lyx/lyx2lyx 27 Aug 2002 20:30:16 -0000 1.4 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,180 +0,0 @@ -#! /usr/bin/env python -# Copyright (C) 2002 José Matos <[EMAIL PROTECTED]> -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -import getopt, sys, string, re -from error import error, warning -from parser_tools import set_comment, set_format, check_token - -version = "0.0.2" - -# Allow the dummy object to be able to carry related data -# like a C struct -class struct: - pass - -# options object, with default values -opt = struct() - -opt.output = sys.stdout -opt.input = sys.stdin -opt.start = None -opt.end = None -opt.quiet = 0 - -format = re.compile(r"(\d)[\.,]?(\d\d)") -fileformat = re.compile(r"\\lyxformat\s*(\S*)") -lst_ft = ["210", "215", "216", "217", "218", "220", "221"] - -def usage(): - print """Usage: lyx2lyx [options] file1 -Convert old lyx file <file1> to newer format. -Options: - -h, --help this information - -v, --version output version information and exit - -l, --list list all available formats - -d, --debug level level=0..2 (O_ no debug information,2_verbose) - default: level=1 - -f, --from version initial version (optional) - -t, --to version final version (optional) - -o, --output name name of the output file or else goes to stdout - -q, --quiet same as --debug=0""" - - -def parse_options(argv): - _options = ["help", "version", "list", "from=", "to=", "output=", "quiet"] - try: - opts, args = getopt.getopt(argv[1:], "f:hlo:qt:v", _options) - except getopt.error: - usage() - sys.exit(2) - - for o, a in opts: - if o in ("-h", "--help"): - usage() - sys.exit() - if o in ("-v", "--version"): - print "lyxconvert, version %s" %(version) - print "Copyright (C) 2002 LyX Team" - sys.exit() - if o in ("-d", "--debug"): - opt.debug = int(a) - if o in ("-q", "--quiet"): - opt.debug = 0 - if o in ("-l", "--list"): - print lst_ft - sys.exit() - if o in ("-o", "--output"): - opt.output = open(a, "w") - if o in ("-f", "--from"): - opt.start = lyxformat(a) - if o in ("-t", "--to"): - opt.end = lyxformat(a) - - if not opt.end: - opt.end = lst_ft[len(lst_ft)-1] - - if opt.start and opt.start == opt.end: - sys.stderr.write(error.same_format) - sys.exit() - - if opt.start > opt.end: - sys.stderr.write(error.newer_format) - sys.exit(1) - - if args: - opt.input = open(args[0]) - -def lyxformat(fmt): - result = format.match(fmt) - if result: - fmt = result.group(1)+result.group(2) - else: - sys.stderr.write(fmt + ": " + error.invalid_format) - sys.exit(2) - if fmt not in lst_ft: - sys.stderr.write(fmt + ": " + error.format_not_supported) - sys.exit(1) - return fmt - -def read_file(file, header, body): - """Reads a file into the header and body parts""" - fmt = None - preamble = 0 - - while 1: - line = file.readline() - if not line: - sys.stderr.write(error.invalid_file) - sys.exit(3) - - line = line[:-1] - if check_token(line, '\\begin_preamble'): - preamble = 1 - if check_token(line, '\\end_preamble'): - preamble = 0 - - if not line and not preamble: - break - - header.append(line) - result = fileformat.match(line) - if result: - fmt = lyxformat(result.group(1)) - - while 1: - line = file.readline() - if not line: - break - body.append(line[:-1]) - - if not fmt: - sys.stderr.write(error.invalid_file) - sys.exit(3) - return fmt - -def write_file(file, header, body): - for line in header: - file.write(line+"\n") - file.write("\n") - for line in body: - file.write(line+"\n") - -def main(argv): - parse_options(argv) - - header, body = [], [] - fmt = read_file(opt.input, header, body) - - if opt.start: - if opt.start != fmt: - print warning.dont_match + ":", opt.start, fmt - else: - opt.start = fmt - - # Convertion chain - start = lst_ft.index(opt.start) - end = lst_ft.index(opt.end) - - for fmt in lst_ft[start:end]: - __import__("lyxconvert_" + fmt).convert(header,body) - - set_comment(header, opt.end) - set_format(header, opt.end) - write_file(opt.output, header, body) - -if __name__ == "__main__": - main(sys.argv) Index: lib/lyx2lyx/lyx2lyx.in =================================================================== RCS file: lib/lyx2lyx/lyx2lyx.in diff -N lib/lyx2lyx/lyx2lyx.in --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ lib/lyx2lyx/lyx2lyx.in 28 Aug 2002 19:06:44 -0000 @@ -0,0 +1,182 @@ +#! /usr/bin/env python +# Copyright (C) 2002 José Matos <[EMAIL PROTECTED]> +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +import getopt, sys, string, re +sys.path.append('@real_datadir@/lyx2lyx/') + +from error import error, warning +from parser_tools import set_comment, set_format, check_token + +version = "0.0.2" + +# Allow the dummy object to be able to carry related data +# like a C struct +class struct: + pass + +# options object, with default values +opt = struct() + +opt.output = sys.stdout +opt.input = sys.stdin +opt.start = None +opt.end = None +opt.quiet = 0 + +format = re.compile(r"(\d)[\.,]?(\d\d)") +fileformat = re.compile(r"\\lyxformat\s*(\S*)") +lst_ft = ["210", "215", "216", "217", "218", "220", "221"] + +def usage(): + print """Usage: lyx2lyx [options] file1 +Convert old lyx file <file1> to newer format. +Options: + -h, --help this information + -v, --version output version information and exit + -l, --list list all available formats + -d, --debug level level=0..2 (O_ no debug information,2_verbose) + default: level=1 + -f, --from version initial version (optional) + -t, --to version final version (optional) + -o, --output name name of the output file or else goes to stdout + -q, --quiet same as --debug=0""" + + +def parse_options(argv): + _options = ["help", "version", "list", "from=", "to=", "output=", "quiet"] + try: + opts, args = getopt.getopt(argv[1:], "f:hlo:qt:v", _options) + except getopt.error: + usage() + sys.exit(2) + + for o, a in opts: + if o in ("-h", "--help"): + usage() + sys.exit() + if o in ("-v", "--version"): + print "lyxconvert, version %s" %(version) + print "Copyright (C) 2002 LyX Team" + sys.exit() + if o in ("-d", "--debug"): + opt.debug = int(a) + if o in ("-q", "--quiet"): + opt.debug = 0 + if o in ("-l", "--list"): + print lst_ft + sys.exit() + if o in ("-o", "--output"): + opt.output = open(a, "w") + if o in ("-f", "--from"): + opt.start = lyxformat(a) + if o in ("-t", "--to"): + opt.end = lyxformat(a) + + if not opt.end: + opt.end = lst_ft[len(lst_ft)-1] + + if opt.start and opt.start == opt.end: + sys.stderr.write(error.same_format) + sys.exit() + + if opt.start > opt.end: + sys.stderr.write(error.newer_format) + sys.exit(1) + + if args: + opt.input = open(args[0]) + +def lyxformat(fmt): + result = format.match(fmt) + if result: + fmt = result.group(1)+result.group(2) + else: + sys.stderr.write(fmt + ": " + error.invalid_format) + sys.exit(2) + if fmt not in lst_ft: + sys.stderr.write(fmt + ": " + error.format_not_supported) + sys.exit(1) + return fmt + +def read_file(file, header, body): + """Reads a file into the header and body parts""" + fmt = None + preamble = 0 + + while 1: + line = file.readline() + if not line: + sys.stderr.write(error.invalid_file) + sys.exit(3) + + line = line[:-1] + if check_token(line, '\\begin_preamble'): + preamble = 1 + if check_token(line, '\\end_preamble'): + preamble = 0 + + if not line and not preamble: + break + + header.append(line) + result = fileformat.match(line) + if result: + fmt = lyxformat(result.group(1)) + + while 1: + line = file.readline() + if not line: + break + body.append(line[:-1]) + + if not fmt: + sys.stderr.write(error.invalid_file) + sys.exit(3) + return fmt + +def write_file(file, header, body): + for line in header: + file.write(line+"\n") + file.write("\n") + for line in body: + file.write(line+"\n") + +def main(argv): + parse_options(argv) + + header, body = [], [] + fmt = read_file(opt.input, header, body) + + if opt.start: + if opt.start != fmt: + print warning.dont_match + ":", opt.start, fmt + else: + opt.start = fmt + + # Convertion chain + start = lst_ft.index(opt.start) + end = lst_ft.index(opt.end) + + for fmt in lst_ft[start:end]: + __import__("lyxconvert_" + fmt).convert(header,body) + + set_comment(header, opt.end) + set_format(header, opt.end) + write_file(opt.output, header, body) + +if __name__ == "__main__": + main(sys.argv)