7204e2f29ad1e93362d408ca1aaadc700d891174
mspeir
  Mon Feb 29 08:11:27 2016 -0800
Add check to see if table update times are differen, and if so, output a little marker next the table. Update command line options so they don't accidentally stomp on each other, suggest in CR. Explain table list file names, suggested in CR. refs #16553 #16869

diff --git src/utils/qa/updateTimesDb.sh src/utils/qa/updateTimesDb.sh
index dd59d86..90c7aa6 100755
--- src/utils/qa/updateTimesDb.sh
+++ src/utils/qa/updateTimesDb.sh
@@ -46,52 +46,58 @@
 database on Beta.
 
 For example, to compare the same assembly on Dev and Beta
 
 	updateTimesDb.sh -d ce10
 
 Or, for example to compare two different databases on Dev and Beta
 
 	updateTimesDb.sh -d ce6 -b ce10
  
 Output is formatted as a table:
 
              dev db	beta db
 tableName    <time>	<time>
 
+If -f is used, the list of tables on Dev is output to <db>.tables and the list
+of tables on Beta is output to <db>.beta.tables.
+
 Notes: 
 - If a table isn't present on a machine, then you will see a "." in place
   of a time
 - trackDb and hgFindSpec tables are excluded from the output
 
 EOF
 }
 
 ##### Parse command-line input #####
 
 OPTIND=1 # Reset is necessary if getopts was used previously in the script.
 	 # It is a good idea to make this local in a function.
 while getopts "hd:b:f" opt
 do                     
         case $opt in   
                 h)     
                         showHelp
                         exit 0
                         ;;
                 d)     
                         dbDev=$OPTARG
+			if [[ $dbBeta == "" ]]
+			then
 				dbBeta=$dbDev
+			fi
 			;;
                 b)     
                         dbBeta=$OPTARG
                         ;;
                 f)     
                         outputFiles=true
                         ;;
                 '?')   
                         showHelp >&2
                         exit 1
                         ;;
         esac
 done
 # Check if no command line options were supplied
 if [ $OPTIND -eq 1 ]
@@ -130,22 +136,32 @@
 	# Underscores added between date and time to that way "column" command later on works correctly
         devUpdate=$(hgsql -Ne "SELECT UPDATE_TIME FROM information_schema.tables WHERE TABLE_SCHEMA='$dbDev' AND TABLE_NAME='$tbl'" \
 		| sed 's/ /_/g')
         betaUpdate=$(hgsql -h mysqlbeta -Ne "SELECT UPDATE_TIME FROM information_schema.tables WHERE TABLE_SCHEMA='$dbBeta' AND TABLE_NAME='$tbl'" \
 		| sed 's/ /_/g')
 
 	# Can't have have completely empty entries or "column" won't work
         if [[ $devUpdate == "" ]]
         then   
                 devUpdate="."
         elif [[ $betaUpdate == "" ]]
         then   
                 betaUpdate="."
         fi
 
+	# Variable to hold error/diff marking
+	error=""
+
+	# Check to see if table times match on Dev and Beta
+	if [[ $devUpdate != $betaUpdate ]] && [[ $devUpdate != "." ]] && [[ $betaUpdate != "." ]]
+	then
+		# If they don't match, mark diff lines with ***
+		error="***"
+	fi
+
 	# Update our output string with new info
-        output+="$tbl $devUpdate $betaUpdate\n"
+        output+="$tbl $devUpdate $betaUpdate $error\n"
 done
 
 # Output results to command line 
 # Final sed is to remove underscores inserted as part of last step
 echo -e $output | column -t -s' ' | sed 's:\([0-9]\)\(_\)\([0-9]\):\1 \3:g'