You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stdcxx.apache.org by se...@apache.org on 2008/03/21 20:06:38 UTC

svn commit: r639764 - /stdcxx/trunk/bin/genxviews

Author: sebor
Date: Fri Mar 21 12:06:36 2008
New Revision: 639764

URL: http://svn.apache.org/viewvc?rev=639764&view=rev
Log:
2008-03-21  Martin Sebor  <se...@roguewave.com>

	* bin/genxviews: Set /bin/sh as the interpreter and invoked
	Bash if the interpreter is a different shell and Bash exists.
	Added the -v (verbose) command line option and some output.
	Added the -V (version) command line option to specify the
	stdcxx version and branch to generate cross-build results for.
	(output): New function.

Modified:
    stdcxx/trunk/bin/genxviews

Modified: stdcxx/trunk/bin/genxviews
URL: http://svn.apache.org/viewvc/stdcxx/trunk/bin/genxviews?rev=639764&r1=639763&r2=639764&view=diff
==============================================================================
--- stdcxx/trunk/bin/genxviews (original)
+++ stdcxx/trunk/bin/genxviews Fri Mar 21 12:06:36 2008
@@ -1,4 +1,4 @@
-#!/usr/local/bin/bash
+#!/bin/sh
 #
 # $Id: genxviews 601595 2007-12-06 01:33:50Z sebor $
 #
@@ -22,13 +22,78 @@
 #
 ########################################################################
 
+if [ "$BASH_VERSION" = "" ]; then
+    # this is not Bash; try to invoke it
+    if [ -x /usr/local/bin/bash ]; then
+        exec /usr/local/bin/bash $*
+    fi
+fi
+
+
+# process command line options
+while getopts "dqvD:o:" opt_name; do
+    case $opt_name in
+        # options with no arguments
+
+        d)  # dry run (do not invoke xbuildgen)
+            dryrun=1
+            ;;
+
+        q) # quiet mode
+           quiet=1
+           ;;
+
+        v) # verbose mode
+           verbose=1
+           ;;
+
+        # options with arguments
+
+        D)  # output directory
+            outdir=$OPTARG
+            ;;
+
+        o)  # argument is the name of output file (stdout by default)
+            outfile=$OPTARG
+            ;;
+
+        V)  # specify stdcxx branch/version to generate cross-build
+            # result views for (trunk by default)
+            version=$OPTARG
+            ;;
+
+     esac;
+done
+
+
+# set the Subversion and output directories based on version
+if [ "$version" == "" ]; then
+
+    # Subversion (sub)directory under stdcxx/
+    svndir="trunk"
+
+    # set output directory unless already set on the command line
+    if [ "$outdir" = "" ]; then
+        outdir="$HOME/public_html/stdcxx/results"
+    fi
+else
+    # Subversion (sub)directory under stdcxx/
+    svndir="branches/$version"
+
+    # set output directory unless already set on the command line
+    if [ "$outdir" = "" ]; then
+        outdir="$HOME/public_html/stdcxx-$version/results"
+    fi
+fi
+
+
 # extract the script's revision number
 myrev='$Revision$'
 myrev=${myrev#'$Revision: '}   # strip leading text
 myrev=${myrev%' $'}            # strip trailing text
 
 # form the URL to this version of the script in the repository
-myurl='$HeadURL: https://svn.apache.org/repos/asf/stdcxx/trunk/bin/genxviews $'
+myurl='$HeadURL: http://svn.apache.org/repos/asf/stdcxx/$svndir/bin/genxviews $'
 myurl=${myurl#'$HeadURL: '}   # strip leading text
 myurl=${myurl##*asf/}         # strip svn prefix
 myurl=${myurl%' $'}           # strip trailing text
@@ -45,42 +110,40 @@
 # program to invoke to process detailed results
 CROSS=$HOME/stdcxx/bin/xbuildgen
 
-# output directory
-outdir=$HOME/public_html/stdcxx/results
-
+# show the command line to invoke xbuildgen without actually
+# invoking the script
 dryrun=0
-quiet=0
 
-# start the clock measuring the amount of wall clock time to process
-# all logs and generate the page
-start_time=`LC_ALL=C date`
-
-
-# process command line options
-while getopts "dqD:o:" opt_name; do
-    case $opt_name in
-        # options with no arguments
+# enable quiet mode?
+quiet=0
 
-        d)  # dry run (do not invoke xbuildgen)
-            dryrun=1
-            ;;
+# write verbose progress output to stdout?
+verbose=0
 
-        q) # quiet mode
-           quiet=1
-           ;;
+######################################################################
 
-        # options with arguments
+# write to output file when specified or to stdout otherwise
+output ()
+{
+    if [ $# -eq 0 ]; then
+        # no arguments provided, copy its own stdin to outfile
+        if [ -z $outfile ]; then
+            cat
+        else
+            cat >>$outfile
+        fi
+    elif [ -z $outfile ]; then
+        echo "$*"
+    else
+        echo "$*" >>$outfile
+    fi
+}
 
-        D)  # output directory
-            outdir=$OPTARG
-            ;;
+######################################################################
 
-        o)  # argument is the name of output file (stdout by default)
-            outfile=$OPTARG
-            ;;
-
-     esac;
-done
+# start the clock measuring the amount of wall clock time to process
+# all logs and generate the page
+start_time=`LC_ALL=C date`
 
 
 cd $outdir
@@ -140,6 +203,10 @@
     alllogs="$4"
     outfile="$5"
 
+    if [ $verbose -ne 1 ]; then
+        echo "$myname: processing logs for $osname-$arch-$compiler: $alllogs"
+    fi
+
     if [ $quiet -eq 0 ]; then
         cat<<EOF
           <tr>
@@ -187,14 +254,14 @@
         echo "$myname: no logs for $compiler on $osname/$arch." >&2
 
         if [ $quiet -eq 0 ]; then
-            echo "            <td><i>$outfile</i></td>"
+            output "            <td><i>$outfile</i></td>"
         fi
     else
         if [ $dryrun -eq 1 ]; then
-            echo "$myname: $CROSS -o$outdir/$outfile -T\"$title\" $buildlogs   # $count logs"
+            output "$myname: $CROSS -o$outdir/$outfile -T\"$title\" $buildlogs"
         else
             if [ $quiet -eq 0 ]; then
-                echo "            <td><a href="$outfile">$outfile</a></td>"
+                output "            <td><a href="$outfile">$outfile</a></td>"
             fi
 
             $CROSS -o$outdir/$outfile -T"$title" $buildlogs