summaryrefslogtreecommitdiff
path: root/ACE/apps/JAWS/clients/WebSTONE/bin/gui-configure
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/apps/JAWS/clients/WebSTONE/bin/gui-configure')
-rwxr-xr-xACE/apps/JAWS/clients/WebSTONE/bin/gui-configure174
1 files changed, 174 insertions, 0 deletions
diff --git a/ACE/apps/JAWS/clients/WebSTONE/bin/gui-configure b/ACE/apps/JAWS/clients/WebSTONE/bin/gui-configure
new file mode 100755
index 00000000000..dcea4e3fe1c
--- /dev/null
+++ b/ACE/apps/JAWS/clients/WebSTONE/bin/gui-configure
@@ -0,0 +1,174 @@
+#!/bin/sh -- because we're not sure where perl is yet
+#
+
+'true' || eval 'exec perl -S $0 $argv:q';
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+& eval 'exec /usr/local/bin/perl -S $0 $argv:q'
+ if 0;
+
+# Usage: [perl] configure [file]
+#
+# This replaces the program paths (e.g. /bin/awk) with an
+# alternate path that is found in the file "file.paths". It also finds
+# perl5 and changes the path in all the stand-alone perl programs.
+#
+
+$debug = 0;
+
+#
+# Target shell scripts in question:
+@shell_scripts=("conf/paths.pl", "conf/paths.sh");
+@perl5_src = < bin/webstone-gui.pl bin/WebStone-common.pl bin/killbench.pl bin/view-results.pl bin/WebStone-manage.pl bin/move-filelist.pl bin/write-testbed.pl bin/WebStone-run.pl bin/move-runs.pl bin/WebStone-setup.pl bin/runbench.pl >;
+@perl_src = < bin/wscollect.pl bin/mine-logs.pl >;
+@benchmark_dir_src = < webstone bin/killbench bin/runbench >;
+
+# all the HTML browsers we know about, IN ORDER OF PREFERENCE!
+@all_www= ("netscape", "Mosaic", "xmosaic", "lynx");
+
+#
+# Potential directories to find commands; first, find the user's path...
+$PATH = $ENV{"PATH"};
+
+# additional dirs; *COLON* separated!
+$other_dirs="/usr/ccs/bin:/bin:/usr/bin:/usr/ucb:/usr/bsd:/usr/ucb/bin:/usr/sbin:/usr/etc:/usr/local/bin:/usr/bin/X11:/usr/X11/bin:/usr/openwin/bin";
+
+#
+# split into a more reasonable format. Personal aliases come last.
+@all_dirs = split(/:/, $other_dirs . ":" . $PATH);
+
+print "checking to make sure all the target(s) are here...\n";
+
+for (@shell_scripts) {
+ die "ERROR -- $_ not found!\n" unless -f $_;
+ }
+
+# find perl
+print "Trying to find perl...\n";
+for $dir (@all_dirs) {
+ # first, find where it might be
+ next if (! -d $dir);
+ while (<$dir/perl*>) {
+ if (-x $_) {
+ $perl_version=`($_ -v 2> /dev/null) |
+ awk '/This is perl/ { print $NF }'`;
+ if ($perl_version) {
+ $PERL=$_;
+ $pflag="1";
+ last;
+ }
+ }
+ last if $pflag;
+ }
+ last if $pflag;
+ }
+
+if ($PERL) {
+ print "\nPerl is in $PERL\n";
+ for (@perl_src) { $perl_src .= "$_ "; }
+ print "\nchanging the source in: $perl_src\n";
+ system "$PERL -pi -e \"s@^#!.*/perl.*@#!$PERL@;\" $perl_src";
+
+ # make sure things are executable...
+ system("chmod u+x $perl_src");
+}
+else
+{
+ printf "\nSome WebStone functions require Perl\n" unless $PERL;
+}
+# end if $PERL
+
+# find perl5
+$pflag = 0;
+print "Trying to find perl5...\n";
+for $dir (@all_dirs) {
+ # first, find where it might be; oftentimes you'll see perl,
+ # perl4, perl5, etc. in the same dir
+ next if (! -d $dir);
+ while (<$dir/perl5* $dir/perl*>) {
+ if (-x $_) {
+ $perl_version=`($_ -v 2> /dev/null) |
+ awk '/This is perl, version 5/ { print $NF }'`;
+ if ($perl_version) {
+ $PERL5=$_;
+ $pflag="1";
+ last;
+ }
+ }
+ last if $pflag;
+ }
+ last if $pflag;
+}
+
+if ($PERL5) {
+ print "\nPerl5 is in $PERL5\n";
+
+ for (@perl5_src) { $perl5_src .= "$_ "; }
+ print "\nchanging the source in: $perl5_src\n";
+ system "$PERL5 -pi -e \"s@^#!.*/perl.*@#!$PERL5@;\" $perl5_src";
+ system("chmod u+x $perl5_src");
+}
+else
+{
+ printf "\nThe WebStone GUI requires Perl5\n" unless $PERL5;
+}
+#end if $PERL5
+
+# find the most preferred www viewer first.
+for $www (@all_www) {
+ for $dir (@all_dirs) {
+ if (!$MOSAIC) {
+ if (-x "$dir/$www") {
+ $MOSAIC="$dir/$www";
+ next;
+ }
+ }
+ }
+ }
+if ($MOSAIC) {
+ print "\nHTML/WWW Browser is $MOSAIC\n";
+
+ $upper{"MOSAIC"} = $MOSAIC;
+ }
+else { print "Cannot find a web browser! WebStone cannot be run except in CLI"; }
+
+print "\nOk, now doing substitutions on the shell scripts...\n";
+for $shell (@shell_scripts) {
+ print "Changing paths in $shell...\n";
+ die "Can't open $shell\n" unless open(SCRIPT, $shell);
+ rename($shell, $shell . '.old');
+ die "Can't open $shell\n" unless open(OUT, ">$shell");
+
+ #
+ # Open up the script, search for lines beginning with
+ # stuff like "TEST", "AWK", etc. If the file ends in "pl",
+ # assume it's a perl script and change it accordingly
+ while (<SCRIPT>) {
+ $found = 0;
+ for $command (keys %upper) {
+ if(/^\$?$command=/) {
+ # shell script
+ if ($shell !~ /.pl$/) {
+ print OUT "$command=$upper{$command}\n"; }
+ # perl script
+ else {
+ print OUT "\$" . "$command=\"$upper{$command}\";\n";
+ }
+ $found = 1;
+ }
+ }
+ print OUT $_ if !$found;
+
+ }
+ close(SCRIPT);
+ close(OUT);
+ }
+
+
+for (@benchmark_dir_src) { $benchmark_dir_src .= "$_ "; }
+print "\nchanging the source in: $benchmark_dir_src\n";
+$BENCHMARK_DIR=`pwd`;
+chop $BENCHMARK_DIR;
+$BENCHMARK_DIR =~ s/\//\\\//g;
+system "$PERL -pi -e \"s/<BENCHMARK_DIR>/$BENCHMARK_DIR/\" $benchmark_dir_src";
+
+# done...