File: auto-multiple-choice.in

package info (click to toggle)
auto-multiple-choice 1.4.0-2~exp1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 18,520 kB
  • sloc: perl: 23,839; xml: 20,920; cpp: 1,791; makefile: 472; ansic: 186; sh: 80
file content (84 lines) | stat: -rwxr-xr-x 2,078 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#! @/PERLPATH/@
#
# Copyright (C) 2008-2017 Alexis Bienvenue <paamc@passoire.fr>
#
# This file is part of Auto-Multiple-Choice
#
# Auto-Multiple-Choice 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.
#
# Auto-Multiple-Choice 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 Auto-Multiple-Choice.  If not, see
# <http://www.gnu.org/licenses/>.

# Local Variables:
# mode:perl
# End:

use File::Spec::Functions qw/catfile catpath splitpath updir/;
use Cwd;

$mods_dir="@/MODSDIR/@";
$ENV{'LC_NUMERIC'}="C";

sub mod_path {
    my ($action)=@_;
    my $f;
    $f=catfile($mods_dir,"perl","AMC-$action.pl");
    return($f) if(-f $f);
    $f=catfile($mods_dir,"exec","AMC-$action");
    return($f) if(-f $f);
    return('');
}

# For portable distribution
if(! -d $mods_dir) {
    ($volume,$directory,$file) = splitpath(__FILE__);
    my $wd=getcwd();
    $base_dir=catfile(catpath( $volume, $directory ),updir);
    chdir($base_dir);
    $base_dir=getcwd();
    chdir($wd);
    $mods_dir=catfile($base_dir,'lib');
    if(! -d $ENV{'AMCBASEDIR'}) {
	$ENV{'PERL5LIB'}=catfile($base_dir,'perl').":".$ENV{'PERL5LIB'};
	$ENV{'TEXINPUTS'}=catfile($base_dir,'latex').":".$ENV{'TEXINPUTS'};
	$ENV{'AMCBASEDIR'}=$base_dir;
	$ENV{'PATH'}=$ENV{'PATH'}.":".catfile($base_dir,'bin');
    }
}

if($#ARGV==0) {
    if(mod_path($ARGV[0])) {
	$action=shift;
    } else {
	$action='gui';
    }
} elsif($#ARGV>0) {
    $action=shift;
} else {
    $action='gui';
}

my $f=mod_path($action);

if($f) {
    if($f =~ /\.pl$/) {
	exec($^X,$f,@ARGV);
    } else {
	exec($f,@ARGV);
    }
} else {
    die "Unknown action $action";
}

die "Exec $f failed: $!";