Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add INSTALL file for cmake.
[simgrid.git] / buildtools / Cmake / tesh.pl
old mode 100644 (file)
new mode 100755 (executable)
index bd20f0c..a1ec8af
@@ -1,15 +1,26 @@
-#!perl -w\r
+#! /usr/bin/perl -w\r
+\r
 use strict;\r
 \r
-if($#ARGV!=1){die "Usage: perl tesh.pl <directory> <teshfile.tesh>\n";}\r
-my($directory)=$ARGV[0];\r
-my($file)=$ARGV[1];\r
+if($#ARGV!=2){die "Usage: tesh.pl --cd <directory> <teshfile.tesh>\n";}\r
 my($line1);\r
 my($line2);\r
 my($execline);\r
 my($ok)=0;\r
-chdir("$directory");\r
-print "Change directory to \"$directory\"\n";\r
+my($nb_arg)=0;\r
+\r
+do{\r
+       if($ARGV[$nb_arg] =~ /^--cd$/)\r
+       {\r
+               $nb_arg++;\r
+               my($directory)=$ARGV[$nb_arg];\r
+               chdir("$directory");\r
+               print "Change directory to \"$directory\"\n";   \r
+       }\r
+       $nb_arg++;\r
+}while(($nb_arg-1)!=$#ARGV);\r
+\r
+my($file)=$ARGV[$nb_arg-1];\r
 open SH_LIGNE, $file or die "Unable to open $file. $!\n";\r
 \r
 while(defined($line1=<SH_LIGNE>))\r
@@ -19,11 +30,13 @@ while(defined($line1=<SH_LIGNE>))
                        $line1 =~ s/\$\{srcdir\:\=\.\}/./g;\r
                        $line1 =~ s/\$SG_TEST_EXENV//g;\r
                        $line1 =~ s/\$SG_EXENV_TEST//g;\r
-                       $line1 =~ s/\$EXEEXT/.exe/g;\r
+                       $line1 =~ s/\$EXEEXT//g;\r
                        $line1 =~ s/\${EXEEXT:=}//g;\r
                        $line1 =~ s/^\$\ *//g;\r
                        $line1 =~ s/^.\/lua/lua/g;\r
                        $line1 =~ s/^.\/ruby/ruby/g;\r
+                       \r
+                       $line1 =~ s/\(%i:%P@%h\)/\\\(%i:%P@%h\\\)/g;\r
                        chomp $line1;\r
                        $execline = $line1;\r
                        print "$execline\n";\r
@@ -39,11 +52,33 @@ while(defined($line1=<SH_LIGNE>))
                        $line1 =~ s/\r//g;\r
                        chomp $line1;\r
                        \r
-                       if($line1 =~ /^.*\[.*\].*\[.*\/INFO\].*$/){if(!defined($line2=<FILE_ERR>)){die;}}elsif($line1 =~ /^.*\[.*\].*\[.*\/WARNING\].*$/){if(!defined($line2=<FILE_ERR>)){die;}}\r
-                       elsif($line1 =~ /^.*\[.*\].*\[.*\/CRITICAL\].*$/){if(!defined($line2=<FILE_ERR>)){die;}}\r
-                       elsif($line1 =~ /^.*\[.*\].*\[.*\/DEBUG\].*$/){if(!defined($line2=<FILE_ERR>)){die;}}\r
-                       else{if(!defined($line2=<FILE>)){die;}}\r
-                       \r
+                       if($line1 =~ /^.*\[.*\].*\[.*\/INFO\].*$/)\r
+                               {if(!defined($line2=<FILE_ERR>))\r
+                                       {       print "- $line1\n";\r
+                                               die;}}\r
+                       elsif($line1 =~ /^.*\[.*\].*\[.*\/WARNING\].*$/)\r
+                               {if(!defined($line2=<FILE_ERR>))\r
+                                       {       print "- $line1\n";\r
+                                               die;}}\r
+                       elsif($line1 =~ /^.*\[.*\].*\[.*\/CRITICAL\].*$/)\r
+                               {if(!defined($line2=<FILE_ERR>))\r
+                                       {       print "- $line1\n";\r
+                                               die;}}\r
+                       elsif($line1 =~ /^.*\[.*\].*\[.*\/DEBUG\].*$/)\r
+                               {if(!defined($line2=<FILE_ERR>))\r
+                                       {       print "- $line1\n";\r
+                                               die;}}\r
+                       elsif($line1 =~ /^.*\[.*\].*\[0\:\@\].*$/)\r
+                               {if(!defined($line2=<FILE_ERR>))\r
+                                       {       print "- $line1\n";\r
+                                               die;}}\r
+                       elsif($line1 =~ /^.*\[.*\].*\(0\:\@\).*$/)\r
+                               {if(!defined($line2=<FILE_ERR>))\r
+                                       {       print "- $line1\n";\r
+                                               die;}}\r
+                       else{if(!defined($line2=<FILE>))\r
+                                       {       print "- $line1\n";\r
+                                               die;}}          \r
                        $line2 =~ s/\r//g;                                                      \r
                        chomp $line2;\r
                        \r