src/utils/qa/findLevel.csh 1.16

1.16 2009/04/11 00:37:03 rhead
Sourced new qaConfig file at the top. Changed -h hgwbeta lines to look for sql host stored in a variable, specified in the new qaConfig file.
Index: src/utils/qa/findLevel.csh
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/utils/qa/findLevel.csh,v
retrieving revision 1.15
retrieving revision 1.16
diff -b -B -U 1000000 -r1.15 -r1.16
--- src/utils/qa/findLevel.csh	25 Apr 2008 23:21:44 -0000	1.15
+++ src/utils/qa/findLevel.csh	11 Apr 2009 00:37:03 -0000	1.16
@@ -1,285 +1,286 @@
 #!/bin/tcsh
+source `which qaConfig.csh`
 
 ################################
 #  
 #  09-26-2007
 #  Ann Zweig
 #
 #  find out which level in the trackDb directory
 #  a track is on, and which level the corresponding
 #  .html file is on.
 #
 ################################
 
 
 set db=""
 set tableName=""
 set currDir=""
 set dbs=""
 set encode=""
 set split=""
 set partName=""
 set matches=""
 set match=""
 set prio=""
 set vis=""
 
 if ( $#argv < 2  || $#argv > 4 ) then
   echo
   echo " searches trackDb hierarchy for your table and corresponding .html file"
   echo " optionally returns the location of the priority and visibility entries"
   echo " returns the lowest-level directory for each" 
   echo
   echo "    usage:  database tableName [priority] [visibility]"
   echo
   exit
 else
   set db=$argv[1]
   set tableName=$argv[2]
 endif
 echo
 
 # find out if they want priority and/or visibility as well
 if ( $#argv == 3 ) then
   if ( $argv[3] == 'priority' ) then
     set prio="T"
   endif
   if ( $argv[3] == 'visibility' ) then
     set vis="T"
   endif
 endif
 if ( $#argv == 4 ) then
   set prio="T"
   set vis="T"
 endif
 
 if ( "$HOST" != "hgwdev" ) then
  echo "\n error: you must run this script on dev!\n"
  exit 1
 endif
 
 # make sure this is a valid database name
 set dbs=`hgsql -e "SELECT name FROM dbDb" hgcentraltest | grep -w $db`
 if ( "$dbs" != $db ) then
   echo
   echo "   Invalid database name.  Try again."
   echo
   exit
 endif
 
 # check for trackDb dir at $USER root
 file ~/trackDb | grep -q 'symbolic link'
 if ( $status ) then
   echo "\n  this program presumes you have a symlink to trackDb \
     in your home dir\n"
   exit
 else
   # start at the assembly level
   cd ~/trackDb/*/$db 
   set currDir=`pwd`
 endif
 
 # detect split chroms and check trackDb for db/table combination 
 set split=`getSplit.csh $db $tableName hgwdev`'_'
 hgsql -N -e 'SHOW TABLES' $db | egrep -wqi "${split}$tableName|$tableName"
 if ($status) then 
   # look for ref to composite main entries which have no tables
   find ../../ -name "trackDb*ra" | xargs grep -wq "subTrack.$tableName" 
   if ($status) then
     echo " ERROR: No such database/table combination: $db $tableName"
     echo "  and no composite track by that name.\n"
     exit
   else
     echo "  Composite track. No single table by this name: $tableName"
     echo
   endif
 else
   find ../../ -name "trackDb*ra" | xargs grep -xq "track.$tableName" 
   if ($status) then
     echo "  This is a composite subtrack table"
     echo
   endif
 endif
 
 # check for entry in trackDb.ra, starting at assembly level
 set matches=`grep -ws "track.$tableName" trackDb.ra`
 set match=`echo $matches | grep -v "^#"`
 if ( "$match" != '' ) then
   # the track is mentioned in the assembly-level trackDb.ra file
 else
   # see if it's in another assembly-level trackDb*
   set partName=`grep -wHs track.$tableName trackDb.*.ra`
   if ( "$partName" != '' ) then
     # the track is mentioned in an assembly-level trackDb.*.ra file
     set encode=`echo $partName | sed -e "s/trackDb//" | sed -e "s/.ra:track $tableName//"`
   else 
     # the track is not at the assembly-level, go up to the organism level
     cd ..
     set currDir=`pwd`
     set matches=`grep -ws track.$tableName trackDb.ra`
     set match=`echo $matches | grep -v "^#"`
     if ( "$match" != '' ) then
       # the track is mentioned in the organism-level trackDb.ra file
     else
       # see if it's in another organism-level trackDb.*.ra
       set partName=`grep -wHs track.$tableName trackDb.*.ra`
       if ( "$partName" != '' ) then
         # the track is mentioned in an organism-level trackDb.*.ra file
         set encode=`echo $partName | sed -e "s/trackDb//" | sed -e "s/.ra:track $tableName//"`
       else
         # the track is not at the organism level, go up to the top level
         cd ..
         set currDir=`pwd`
         set matches=`grep -ws track.$tableName trackDb.ra`
         set match=`echo $matches | grep -v "^#"`
         if ( "$match" != '' ) then
           # the track is mentioned in the top-level trackDb.ra file
         else 
            # the track is not at the top level either - it does not exist
            echo " * the $tableName track does not exist in any level trackDb.ra file"
            set currDir=""
         endif
       endif
     endif
   endif
 endif
 if ($currDir != "") then
   echo " * trackDb: \
     `echo $currDir | sed -e 's^.*makeDb^~^'`/trackDb$encode.ra"
 endif
 echo
 
 ###########################################
 # now, find the level of the associated .html file
 # start at the assembly level
 cd ~/trackDb/*/$db
 set currDir=`pwd`
 
 if (-e $tableName.html) then
   # the .html file is found at the assembly-level
 
 else
   # the .html is not found at the assembly-level, go up to the organism level
   cd ..
   set currDir=`pwd`
   if (-e $tableName.html) then
     # the .html file is found at the organism-level
 
   else
     # the .html file is not found at the organism level, go up to the top level
     cd ..
     set currDir=`pwd`
     if (-e $tableName.html) then
       # the .html file is found at the top-level
     else
       # the .html file is not at the top level either - it does not exist
       echo " * the $tableName.html file does not exist at any level"
       set currDir=""
     endif
   endif
 endif
 if ($currDir != "") then
   echo " * html file: \
     `echo $currDir | sed 's^.*makeDb^~^'`/$tableName.html"
 endif
 echo
 
 ###########################################
 # check for entry in priority.ra file, starting at assembly level
 if ( "T" == $prio) then
   # start back at the assembly level
   cd ~/trackDb/*/$db 
   set currDir=`pwd`
   set matches=`grep -ws "track.$tableName" priority.ra`
   set match=`echo $matches | grep -v "^#"`
   if ( "$match" != '' ) then
     # the track is mentioned in the assembly-level priority.ra file
   else
     # the track is not at the assembly-level, go up to the organism level
     cd ..
     set currDir=`pwd`
     set matches=`grep -ws track.$tableName priority.ra`
     set match=`echo $matches | grep -v "^#"`
     if ( "$match" != '' ) then
       # the track is mentioned in the organism-level priority.ra file
     else
       # the track is not at the organism level, go up to the top level
       cd ..
       set currDir=`pwd`
       set matches=`grep -ws track.$tableName priority.ra`
       set match=`echo $matches | grep -v "^#"`
       if ( "$match" != '' ) the
         # the track is mentioned in the top-level priority.ra file
       else 
         # the track is not at the top level either
         echo " * priority:"
         echo " The $db.$tableName track entry does not exist in any level"
         echo " priority.ra file. This doesn't mean there is no priority"
         echo " entry -- it's probably in the trackDb.ra file."
         set currDir=""
       endif
     endif
   if ($currDir != "") then
     if (-e $currDir/priority.ra) then
       echo " * priority: \
         `echo $currDir | sed -e 's^.*makeDb^~^'`/priority.ra"
     else
       echo " * priority:"
       echo " The $db.$tableName track entry does not exist in any level"
       echo " priority.ra file. This doesn't mean there is no priority"
       echo " entry -- it's probably in the trackDb.ra file."
     endif
   endif
   echo
 endif #end find priority entry
 
 ###########################################
 # check for entry in visibility.ra file, starting at assembly level
 if ( "T" == $vis) then
   # start back at the assembly level
   cd ~/trackDb/*/$db 
   set currDir=`pwd`
   set matches=`grep -ws "track.$tableName" visibility.ra`
   set match=`echo $matches | grep -v "^#"`
   if ( "$match" != '' ) then
     # the track is mentioned in the assembly-level visibility.ra file
   else
     # the track is not at the assembly-level, go up to the organism level
     cd ..
     set currDir=`pwd`
     set matches=`grep -ws track.$tableName visibility.ra`
     set match=`echo $matches | grep -v "^#"`
     if ( "$match" != '' ) then
       # the track is mentioned in the organism-level visibility.ra file
     else
       # the track is not at the organism level, go up to the top level
       cd ..
       set currDir=`pwd`
       set matches=`grep -ws track.$tableName visibility.ra`
       set match=`echo $matches | grep -v "^#"`
       if ( "$match" != '' ) the
         # the track is mentioned in the top-level visibility.ra file
       else 
         # the track is not at the top level either
         echo " * visibility:"
         echo " The $db.$tableName track entry does not exist in any level"
         echo " visibility.ra file. This doesn't mean there is no visibility"
         echo " entry -- it's probably in the trackDb.ra file."
         set currDir=""
       endif
     endif
   if ($currDir != "") then
     if (-e $currDir/visibility.ra) then
       echo " * visibility: \
         `echo $currDir | sed -e 's^.*makeDb^~^'`/visibility.ra"
     else
       echo " * visibility:"
       echo " The $db.$tableName track entry does not exist in any level"
       echo " visibility.ra file. This doesn't mean there is no visibility"
       echo " entry -- it's probably in the trackDb.ra file."
     endif
   endif
   echo
 endif #end find visibility entry
 
 exit 0