src/utils/qa/findLevel 1.5
1.5 2010/03/13 01:35:07 rhead
Added changes to work with updated tdbQuery that recognizes multiple release tags (like beta,public).
Index: src/utils/qa/findLevel
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/utils/qa/findLevel,v
retrieving revision 1.4
retrieving revision 1.5
diff -b -B -U 1000000 -r1.4 -r1.5
--- src/utils/qa/findLevel 11 Mar 2010 00:10:36 -0000 1.4
+++ src/utils/qa/findLevel 13 Mar 2010 01:35:07 -0000 1.5
@@ -1,120 +1,120 @@
#!/bin/bash
# quit if something within the script fails
set -beEu -o pipefail
source `which qaConfig.bash`
################################
#
# 09-26-2007
# Ann Zweig
#
# findLevel
# find out which level in the trackDb directory
# a track is on, and which level the corresponding
# .html file is on.
#
# 02-25-2010
# Brooke Rhead
# Changed to a bash script to simplify dealing with stderr
# and stdout.
#
################################
db=""
tableName=""
currDir=""
-error=""
+error="no"
# get arguments or print usage
if [ $# -ne 2 ]
then
echo -e "
searches trackDb hierarchy for your table and corresponding .html file
also returns the value of the priority and visibility entries
and the .ra file location for each\n
usage: database tableName\n" >&2
exit 1
else
db="$1"
tableName="$2"
fi
# check for kent source dir at $USER root
if ! [ -d ~/kent/src/hg/makeDb/trackDb/ ]
then
echo -e "\n ERROR: `basename $0` presumes you have the kent source
source tree in your home dir, in a dir called \"kent\"\n" >&2
exit 1
fi
# make sure this is a valid database name
if ! hgsql -Ne "show databases" | grep -qw $db
then
echo -e "\nERROR: database $db not found. Try running on hgwdev?\n" >&2
exit 1
fi
echo
###########################################
# find the level of the associated .html file
# start at the assembly level
cd ~/kent/src/hg/makeDb/trackDb/*/$db
currDir=""
if [ -e $tableName.html ]
then # the .html file is found at the assembly level
currDir=`pwd -P`
else
cd ..
if [ -e $tableName.html ]
then # the .html file is found at the organism level
currDir=`pwd -P`
else
cd ..
if [ -e $tableName.html ]
then # the .html file is found at the top level
currDir=`pwd -P`
fi
fi
fi
if [ "$currDir" == "" ]
then
echo -e " * the $tableName.html file does not exist at any level\n"
else
echo -e " * html file: $currDir/$tableName.html\n"
fi
###########################################
# find the trackDb.ra entry (using tdbQuery)
-
+# the tdbQuery default is -release=alpha
echo " * trackDb:"
-all=`tdbQuery "select track,priority,visibility,release,filePos from \
+alpha=`tdbQuery "select track,release,priority,visibility,filePos from \
$db where track='$tableName'" 2> /dev/null` || error=yes
-strict=`tdbQuery -strict "select track,priority,visibility,release,filePos from \
+beta=`tdbQuery -release=beta "select track,release,priority,visibility,filePos from \
$db where track='$tableName'" 2> /dev/null` || error=yes
-alpha=`tdbQuery -alpha "select track,priority,visibility,release,filePos from \
+public=`tdbQuery -release=public "select track,release,priority,visibility,filePos from \
$db where track='$tableName'" 2> /dev/null` || error=yes
-# always print "all"; only print strict or alpha if they differ from all
-echo -e "$all\n"
-if [ "$all" != "$strict" ]
+# always print "alpha"; only print beta or public if they differ from alpha
+echo -e "$alpha\n"
+if [ "$alpha" != "$beta" ]
then
- echo -e "$strict\n"
+ echo -e "$beta\n"
fi
-if [ "$alpha" != "$all" ] && [ "$alpha" != "$strict" ]
+if [ "$alpha" != "$public" ] && [ "$beta" != "$public" ]
then
- echo -e "$alpha\n"
+ echo -e "$public\n"
fi
-# if tdbQuery is only giving errors, $all will be empty and nothing printed
+# if tdbQuery is only giving errors, variables will be empty and nothing printed
if [ "$error" = "yes" ]
then
- echo -e "\nERROR: tdbQuery returned only errors\n" >&2
+ echo -e "\nERROR: tdbQuery returned errors\n" >&2
exit 1
fi
exit 0