#! /bin/sh # # nasconfig # # Cloned from .common_tool_wrapper loginfo () { echo "DATE: "`date` echo "WRAPPER: /import/$TRE_PROJECT/exe/.ccad_tool_wrapper" echo "USER: "`/usr/ucb/whoami` echo "HOST: "`uname -n` echo "SYS: "`uname -s` `uname -r` echo "PWD: "`pwd` echo "ARGV: "$ARGV echo "TOOL: "$tool echo "VERSION: "$version echo "TRE_SEARCH: "$TRE_SEARCH echo "TRE_ENTRY: "$TRE_ENTRY } mailinfo () { echo To: $1 echo Subject: TRE_LOG echo "#" loginfo } mailerr () { echo "To: $1" echo "Subject: TRE ERROR" echo "#" echo "ERROR: $2" loginfo } log () { # Log to TRE_LOG if it is set properly. # It is STRONGLY recommended that TRE_LOG be an e-mail address # in order to avoid problems with several people simultanously # writing to the same file. # TRE_LOG must be set, but it can be broken. # TRE_ULOG is optional, for users who want their own logging. if [ ! -z "$TRE_LOG_ENABLED" -a ! -z "$TRE_LOG" ] ; then # Check first if TRE_LOG is a file (this is cheap). if [ -f $TRE_LOG -a -w $TRE_LOG ] ; then echo "#" >> $TRE_LOG loginfo >> $TRE_LOG elif /usr/lib/sendmail -bv $TRE_LOG 1>&- 2>&- ; then mailinfo $TRE_LOG | /usr/lib/sendmail $TRE_LOG else user=`/usr/ucb/whoami` mailerr $user "Can't log to TRE_LOG=$TRE_LOG. Fix environment." | /usr/lib/sendmail $user fi #else # die "TRE_LOG environment variable is not set." fi # TRE_ULOG is optional user log. EMAIL address is recommended. if [ ! -z "$TRE_ULOG" ] ; then # Check first if TRE_ULOG is a file (this is cheap). if [ -f $TRE_ULOG -a -w $TRE_ULOG ] ; then echo "#" >> $TRE_ULOG loginfo >> $TRE_ULOG elif /usr/lib/sendmail -bv $TRE_ULOG 1>&- 2>&- ; then mailinfo $TRE_ULOG | /usr/lib/sendmail $TRE_ULOG else user=`/usr/ucb/whoami` mailerr $user "Can't log to TRE_ULOG=$TRE_ULOG. Fix environment." | /usr/lib/sendmail $user fi fi } die () { message="$1" echo "$tool -> .ccad_tool_wrapper: $message Exiting ..." if [ ! -z "$TRE_LOG" ] ; then if [ -f ${TRE_LOG} -a -w ${TRE_LOG} ] ; then echo "#" >> $TRE_LOG echo "ERROR: $message" >> $TRE_LOG loginfo >> $TRE_LOG elif /usr/lib/sendmail -bv $TRE_LOG 1>&- 2>&- ; then mailerr $TRE_LOG "$message" | /usr/lib/sendmail $TRE_LOG else user=`/usr/ucb/whoami` echo "Can not log to TRE_LOG=${TRE_LOG}. Logging to '$user.'" mailerr $user "$message" | /usr/lib/sendmail $user fi fi # TRE_ULOG is optional user log. EMAIL address is recommended. if [ ! -z "$TRE_ULOG" ] ; then if [ -f ${TRE_ULOG} -a -w ${TRE_ULOG} ] ; then echo "#" >> $TRE_ULOG echo "ERROR: $message" >> $TRE_ULOG loginfo >> $TRE_ULOG elif /usr/lib/sendmail -bv $TRE_ULOG 1>&- 2>&- ; then mailerr $TRE_ULOG "$message" | /usr/lib/sendmail $TRE_ULOG else user=`/usr/ucb/whoami` echo "Can not log to TRE_ULOG=${TRE_ULOG}. Logging to '$user.'" mailerr $user "$message" | /usr/lib/sendmail $user fi fi exit 1 } ############################ main ############################## tool=`basename $0` ARGV="$*" TRE_ROOT=$DV_ROOT/tools/src ### Verify TRE_SEARCH and TRE_ENTRY are defined and non-null if [ -z "$TRE_SEARCH" ]; then die "TRE_SEARCH not defined" fi if [ -z "$TRE_ENTRY" ]; then die "TRE_ENTRY not defined" fi ### Get version, based on tool invoked, and $TRE_ENTRY version=`configsrch nas $TRE_ENTRY` if [ $? != 0 ] ; then die "configsrch returned error code!" fi ### Verify configsrch delivered a non-null version if [ -z "$version" ]; then die "No version set by configsrch" fi ### Find out about cpp cppversion=`bw_cpp -V < /dev/null > /dev/null 2>&1` if [ $? != 0 ] ; then ### It's an error, so it must be GNU cpp cppargs="" else ### It's sun cpp, so we need -B cppargs="-B" fi ### echo "sed 's/common.exe/diag.exe/' $TRE_ROOT/nas,$version/home/common/common.simics | sed 's/common.conf/diag.conf/' | bw_cpp $cppargs $ARGV | grep -v '^#' > diag.simics" log ret=`bw_cpp $cppargs -P $ARGV $TRE_ROOT/nas,$version/home/common/common.conf > diag.conf` ret=`sed 's/common.exe/diag.exe/' $TRE_ROOT/nas,$version/home/common/common.simics | sed 's/common.conf/diag.conf/' | bw_cpp $cppargs $ARGV | grep -v '^#' > diag.simics`