From ae3b2c78742463e6b288d21971814718a9d22d28 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Matox?= Date: Tue, 28 Aug 2001 20:23:46 +0000 Subject: [PATCH] Allow reLyX to be run from the source directory git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@2608 a592a061-630c-0410-9148-cb99ea01b6c8 --- lib/ChangeLog | 3 +++ lib/reLyX/reLyX.in | 32 ++++++++++++++++++++++++++------ 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/lib/ChangeLog b/lib/ChangeLog index e866598361..98c01c5134 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,3 +1,6 @@ +2001-08-28 José Matos + * reLyX/reLyX.in: allow reLyX to be run from the source directory. + 2001-08-15 John Levon * ui/default.ui: sanitise math/tabular entries diff --git a/lib/reLyX/reLyX.in b/lib/reLyX/reLyX.in index 87235a18a8..d20b78590c 100644 --- a/lib/reLyX/reLyX.in +++ b/lib/reLyX/reLyX.in @@ -7,13 +7,15 @@ ############################# reLyX wrapper use strict; use File::Basename; +use Cwd 'abs_path'; $^W = 1; # same as 'perl -w' # Variables to make global, so subroutines can use them use vars qw($lyxdir $lyxname); my (@maybe_dir); -my $mainscript = "reLyXmain.pl"; +my $mainscript = "reLyXmain.pl"; +my $relyxdir; # Do this in a BEGIN block so it's done before the 'use lib' below BEGIN{ @@ -33,19 +35,37 @@ my $dir = &dirname($name); # are OK, but empty or undefined values will make 'use lib' complain my $i = 0; # case 1: for developers, e.g. - reLyX and $mainscript in same directory -$maybe_dir[$i++] = "."; -# case 2: environment variable LYX_DIR_11x has been set -if (exists $ENV{LYX_DIR_11x}) { $maybe_dir[$i++] = "$ENV{LYX_DIR_11x}/reLyX"}; -# case 3: ran make but not make install. +$maybe_dir[$i++] = "$dir"; +# case 2: ran make but not make install. $maybe_dir[$i++] = "$dir/$srcdir"; +# case 3: environment variable LYX_DIR_11x has been set +if (exists $ENV{LYX_DIR_11x}) { $maybe_dir[$i++] = "$ENV{LYX_DIR_11x}/reLyX"}; # case 4: e.g., reLyX in /opt/bin, $mainscript in /opt/share/lyx/reLyX $maybe_dir[$i++] = "$dir/../share/$lyxname/reLyX"; # case 4 # case 5: configure figured out where $mainscript is $maybe_dir[$i++] = "$lyxdir/reLyX"; + +# Decide which one is the real directory, based on the existence of +# "$dir/$mainscript" +my $found=0; +foreach $dir (@maybe_dir) { + if( -e "$dir/$mainscript" ) { + $lyxdir = abs_path("$dir/.."); + $relyxdir = abs_path($dir); + $found = 1; + last; + } + } + +if(!$found) { + print "reLyX directory not found.\n"; + exit(1); + } + } # end BEGIN block # Now put those directories into @INC -use lib @maybe_dir; +use lib $relyxdir; # Now run the script. Perl will look in @INC to find the script (and # other modules that $mainscript calls) -- 2.39.2