911babaa75518844e606fa2e29ab92caaedaf377
hiram
  Mon Sep 1 23:01:12 2025 -0700
improved procedure

diff --git src/hg/makeDb/doc/asmHubs/dynaBlatLinks.sh src/hg/makeDb/doc/asmHubs/dynaBlatLinks.sh
index 4f83a7a058b..8e3c3038875 100755
--- src/hg/makeDb/doc/asmHubs/dynaBlatLinks.sh
+++ src/hg/makeDb/doc/asmHubs/dynaBlatLinks.sh
@@ -1,26 +1,59 @@
 #!/bin/bash
 
 set -beEu -o pipefail
 
 if [ $# -lt 1 ]; then
   printf "usage: gdDbLinks.sh asmId [... asmId ...]\n" 1>&2
+  printf "or with the single argument: 'ucscDb' to check the database links\n" 1>&2
   exit 255
 fi
 
 export dynaBlatLinks="/hive/data/inside/dynaBlat/backUpLinks"
 
+if [ $# -eq 1 ]; then
+  asmId=$*
+  if [ "${asmId}" = "ucscDb" ]; then
+    for D in /hive/data/genomes/*/dynamicBlat
+    do
+       dbDir=`dirname "${D}"`
+       db=`basename "${dbDir}"`
+       twoBit="${dbDir}/${db}.2bit"
+       if [ -s "${twoBit}" ]; then
+         printf "2bit: '%s'\n" "${twoBit}"
+         mkdir -p "${dynaBlatLinks}/${db}"
+         ln -s "${twoBit}" "${dynaBlatLinks}/${db}"
+         for ext in untrans.gfidx trans.gfidx
+         do
+           filePath="${D}/${db}.${ext}"
+           if [ ! -s "${filePath}" ]; then
+              printf "missing: '%s'\n" "${filePath}"
+              exit 255
+           else
+              ln -s "${filePath}" "${dynaBlatLinks}/${db}"
+           fi
+         done
+       else
+         printf "ERROR: can not find 2bit file: '%s'\n" "${twoBit}" 1>&2
+       fi
+    done
+  else
+    printf "# arge 1 '%s'\n" "$*"
+  fi
+  exit 255
+fi
+
 for asmId in $*
 do
   gcX="${asmId:0:3}"
   d0="${asmId:4:3}"
   d1="${asmId:7:3}"
   d2="${asmId:10:3}"
   acc=`echo $asmId | cut -d'_' -f1-2`
   downDir="/hive/data/genomes/asmHubs/${gcX}/${d0}/${d1}/${d2}/${acc}"
   linksDir="${dynaBlatLinks}/${gcX}/${d0}/${d1}/${d2}/${acc}"
   if [ ! -d "${linksDir}" ]; then
     mkdir -p "${linksDir}"
   fi
   for ext in 2bit trans.gfidx untrans.gfidx
   do
     rm -f "${linksDir}/${acc}.${ext}"