# -*- mode: perl; -*-
use strict;
+use warnings;
-# Syntax: ReplaceValuesprefTest.pl [<var1>=<Subst1> [<var2>=<Subst> ...]] [[ctest parameters]]
+# Syntax: prefTest.pl [test|default] [<var1>=<Subst1> [<var2>=<Subst> ...]] [[ctest parameters]]
+# If the first parameter is "test"
+# allow use of -shell-escape in converters and
+# allow use of external programs
+# If the first parameter is "default"
+# remove "-shell-escape" from converters and
+# forbid use of external programs
+# Else
+# allow use of -shell-escape in converters and
+# do not change handling the use of external programs
+############################################################
+
+BEGIN {
+ unshift(@INC, "@CMAKE_CURRENT_SOURCE_DIR@");
+}
+
+use prefTest;
my $bindir = "@CMAKE_BINARY_DIR@";
my %allowedKeys = (
"use_converter_needauth_forbidden" => ["true", "false"],
"use_converter_needauth" => ["true", "false"],
+ "allow_geometry_session" => ["false"],
+ "use_converter_cache" => ["true", "false"],
+ "converter_cache_maxage" => "integer",
);
+my %Converter = ();
+
chdir($bindir);
# Parse Arguments for strings to substitute
my %Subst = ();
-my $ctestparams = 0;
my @ctestpars = ();
-for my $arg (@ARGV) {
- if ($ctestparams) {
- push(@ctestpars, $arg);
- }
- else {
- if ($arg =~ /^([^=]+)=(.*)$/) {
- my $key = $1;
- my $value = $2;
- my $valid = 0;
- if (defined($allowedKeys{$key})) {
- for my $val (@{$allowedKeys{$key}}) {
- if ($val eq $value) {
- $valid = 1;
- last;
- }
- }
- }
- if ($valid) {
- $Subst{$key} = [$value, 0];
- }
- else {
- die("invalid key or value specified in \"$arg\"");
- }
- }
- else {
- $ctestparams = 1;
- push(@ctestpars, $arg);
- }
- }
+
+my $shell_escapes = 1;
+my $handle_argv = "";
+if (defined($ARGV[0]) && ($ARGV[0] =~ /^(test|default)$/)) {
+ $handle_argv = $1;
+ shift(@ARGV);
}
-if (%Subst) { # Try to do something only if a substitute is requested
- if (open(FO, '>', "$userdir/preferences.tmp")) {
- if (open(FI, "$userdir/preferences")) {
- while (my $l = <FI>) {
- for my $k (keys %Subst) {
- if ($l =~ /^\\$k\b/) {
- $l = "\\$k $Subst{$k}->[0]\n";
- $Subst{$k}->[1] = 1;
- }
- }
- print FO $l;
- }
- }
- for my $k (keys %Subst) {
- if ($Subst{$k}->[1] == 0) {
- print FO "\\$k $Subst{$k}->[0]\n";
- }
- }
- rename("$userdir/preferences.tmp", "$userdir/preferences");
- }
+
+if ($handle_argv eq "test") {
+ @ctestpars = &getSubstitutes(\%allowedKeys, \%Subst,
+ "allow_geometry_session=false",
+ "use_converter_needauth_forbidden=false",
+ "use_converter_needauth=false",
+ "use_converter_cache=false",
+ "converter_cache_maxage=" . 180*24*60*60,
+ @ARGV);
}
+elsif ($handle_argv eq "default") {
+ $shell_escapes = 0;
+ @ctestpars = &getSubstitutes(\%allowedKeys, \%Subst,
+ "allow_geometry_session=false",
+ "use_converter_needauth_forbidden=true",
+ "use_converter_needauth=true",
+ "use_converter_cache=true",
+ "converter_cache_maxage=" . 61*24*60*60,
+ @ARGV);
+}
+else {
+ @ctestpars = &getSubstitutes(\%allowedKeys, \%Subst,
+ "allow_geometry_session=false", @ARGV);
+}
+
+&getConverters($userdir, \%Converter, $shell_escapes);
+
+&applyChanges($userdir, \%Subst, \%Converter, $shell_escapes);
my $res = 0;
if (@ctestpars) {
}
exit($res);
+