src/hg/makeDb/trackDb/makeMetaDb 1.2

1.2 2010/06/03 01:03:17 braney
D'oh! check for no metaDb directory
Index: src/hg/makeDb/trackDb/makeMetaDb
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/makeDb/trackDb/makeMetaDb,v
retrieving revision 1.1
retrieving revision 1.2
diff -b -B -U 1000000 -r1.1 -r1.2
--- src/hg/makeDb/trackDb/makeMetaDb	2 Jun 2010 21:59:14 -0000	1.1
+++ src/hg/makeDb/trackDb/makeMetaDb	3 Jun 2010 01:03:17 -0000	1.2
@@ -1,64 +1,68 @@
 #!/bin/bash -e
 usage='makeMetaDb  directory metaDb db0 ...'
 
 UNAME_N=`uname -n`
 UNAME_N=${UNAME_N/.cse.ucsc.edu/}
 
 if [ $# -lt 3 ] ; then
     echo "wrong # args: $usage" >&2
     exit 1
 fi
 
 directory="$1"; shift
 metaDb="$1"; shift
 dbs="$@"
 
 # check if a database exists, print note and return non-zero if it doesn't
 dbExists() {
     local db="$1"
     if [ -n "$local" ] ; then
 	local dbChk=$(hgsqlLocal -Ne 'show databases like "'$db'"')
     else 
 	local dbChk=$(hgsql -Ne 'show databases like "'$db'"')
     fi
     if [ -z "$dbChk" ] ; then
         echo "Note: database $db does not exist, skipping"
         return 1
     else
         return 0
     fi
 }
 
 # load metaDb for a database
 loadMetaDb() {
     local db="$1"
     local dbpath=$(ls -1 -d */$db)
     local org=$(echo $dbpath | sed -e 's/\/.*//')
     local metaDir=$dbpath/metaDb/$directory
+    if test \! -d $metaDir
+    then
+        return;
+    fi
     local tmpTable=$metaDb"_tmp";
     local bakTable=$metaDb"_back";
 
     local cmd="hgsql -e \"drop table if exists $tmpTable;\" $db"
     echo $cmd
     eval $cmd 
 
-    local cmd="cat $metaDir/*.ra > $metaDir/allRas; mdbUpdate -recreate $db -table=$tmpTable $metaDir/allRas"
+    local cmd="rm -f $metaDir/allRas; touch $metaDir/allRas; cat $metaDir/*.ra >> $metaDir/allRas; mdbUpdate -recreate $db -table=$tmpTable $metaDir/allRas"
     echo $cmd
     eval $cmd 
 
     local cmd="rm $metaDir/allRas"
     echo $cmd
     eval $cmd 
 
     local cmd="hgsqlSwapTables -okNoTable2 -dropTable3 $db $tmpTable $metaDb $bakTable"
     echo $cmd
     eval $cmd 
 }
 
 # load for all specified databases
 for db in $dbs ; do
     if dbExists $db ; then
         loadMetaDb $db
     fi
 done