afee0fcf2a7b7de2eb37e1420dc126607373453e
hiram
  Wed May 27 17:31:45 2020 -0700
rework scripts to allow subset hubs to be created from a list of assemblies refs #23734

diff --git src/hg/makeDb/doc/asmHubs/asmHubs.mk src/hg/makeDb/doc/asmHubs/asmHubs.mk
index d1f6fc1..ad54947 100644
--- src/hg/makeDb/doc/asmHubs/asmHubs.mk
+++ src/hg/makeDb/doc/asmHubs/asmHubs.mk
@@ -1,59 +1,61 @@
 # generic makefile to construct the index pages and symlinks
-# for any of the assembly hubs:
-# primates, mammals, birds, fish, vertebrate
+# for any assembly hub
 #
 # will be included by those individual build directories with the
-# Name and name defined to use here
+# following variables defined to customize the resulting files:
+#
+# destDir, srcDir, orderList, indexName, testIndexName,
+# statsName, testStatsName, dataName, testDataName, genomesTxt, hubFile
+# testHubFile, Name and name
 
-destDir=/hive/data/genomes/asmHubs/${name}
-srcDir=${HOME}/kent/src/hg/makeDb/doc/${name}AsmHub
 toolsDir=${HOME}/kent/src/hg/makeDb/doc/asmHubs
 
-all:: makeDirs mkGenomes symLinks ${destDir}/hub.txt ${destDir}/groups.txt \
-	hubIndex asmStats trackData
+all:: makeDirs mkGenomes symLinks hubIndex asmStats trackData hubTxt groupsTxt
 
 makeDirs:
 	mkdir -p ${destDir}
 
+mkGenomes::
+	${toolsDir}/mkGenomes.pl ${orderList} > ${destDir}/${genomesTxt}.txt
+
 symLinks::
-	${toolsDir}/mkSymLinks.pl ${Name} ${name}
+	${toolsDir}/mkSymLinks.pl ${orderList}
 
 hubIndex::
-	${toolsDir}/mkHubIndex.pl ${Name} ${name} ${defaultAssembly} > ${destDir}/index.html
-	sed -e "s#genome.ucsc.edu/h/#genome-test.gi.ucsc.edu/h/#g; s/hgdownload.soe/hgdownload-test.gi/g; s#/index.html#/testIndex.html#; s#${name}/hub.txt#${name}/testHub.txt#; s/asmStats/testAsmStats/; s#trackData.html#testTrackData.html#;" ${destDir}/index.html > ${destDir}/testIndex.html
-	chmod +x ${destDir}/index.html ${destDir}/testIndex.html
+	${toolsDir}/mkHubIndex.pl ${Name} ${name} ${defaultAssembly} ${orderList} | sed -e 's#asmStats.html#${statsName}.html#; s#trackData.html#${dataName}.html#; s#${name}/hub.txt#${name}/${hubFile}.txt#;' > ${destDir}/${indexName}.html
+	sed -e "s#genome.ucsc.edu/h/#genome-test.gi.ucsc.edu/h/#g; s/hgdownload.soe/hgdownload-test.gi/g; s#/${indexName}.html#/${testIndexName}.html#; s#${name}/${hubFile}.txt#${name}/${testHubFile}.txt#; s/${statsName}/${testStatsName}/; s#${dataName}.html#${testDataName}.html#;" ${destDir}/${indexName}.html > ${destDir}/${testIndexName}.html
+	chmod +x ${destDir}/${indexName}.html ${destDir}/${testIndexName}.html
 
 asmStats::
-	rm -f ${destDir}/asmStats${Name}.html ${destDir}/testAsmStats${Name}.html
-	${toolsDir}/mkAsmStats.pl ${Name} ${name} > ${destDir}/asmStats.html
-	sed -e "s/hgdownload.soe/hgdownload-test.gi/g; s/index.html/testIndex.html/; s#/asmStats#/testAsmStats#; s#trackData.html#testTrackData.html#;" ${destDir}/asmStats.html > ${destDir}/testAsmStats.html
-	chmod +x ${destDir}/asmStats.html ${destDir}/testAsmStats.html
+	rm -f ${destDir}/${statsName}.html ${destDir}/${testStatsName}.html
+	${toolsDir}/mkAsmStats.pl ${Name} ${name} ${orderList} | sed -e 's#index.html#${indexName}.html#; s#trackData.html#${dataName}.html#;' > ${destDir}/${statsName}.html
+	sed -e "s/hgdownload.soe/hgdownload-test.gi/g; s/index.html/${testIndexName}.html/; s#/${statsName}#/${testStatsName}#; s#${dataName}.html#${testDataName}.html#;" ${destDir}/${statsName}.html > ${destDir}/${testStatsName}.html
+	chmod +x ${destDir}/${statsName}.html ${destDir}/${testStatsName}.html
 
 # trackData makes different tables for the test vs. production version
+# mkHubIndex.pl and mkAsmStats.pl should do this too . . .  TBD
 trackData::
-	${toolsDir}/trackData.pl ${Name} ${name} > ${destDir}/trackData.html
-	${toolsDir}/trackData.pl -test ${Name} ${name} > ${destDir}/testTrackData.html
-	chmod +x ${destDir}/trackData.html
-	chmod +x ${destDir}/testTrackData.html
-
-mkGenomes::
-	${toolsDir}/mkGenomes.pl ${Name} ${name} > ${destDir}/genomes.txt
-
-${destDir}/hub.txt: ${srcDir}/hub.txt
-	rm -f ${destDir}/hub.txt
-	cp -p ${srcDir}/hub.txt ${destDir}/hub.txt
-	sed -e 's/index.html/testIndex.html/;' ${srcDir}/hub.txt > ${destDir}/testHub.txt
-
-${destDir}/groups.txt: ${toolsDir}/groups.txt
+	${toolsDir}/trackData.pl ${Name} ${name} ${orderList} | sed -e 's#index.html#${indexName}.html#; s#asmStats.html#${statsName}.html#;' > ${destDir}/${dataName}.html
+	${toolsDir}/trackData.pl -test ${Name} ${name} ${orderList} | sed -e "s#testIndex.html#${testIndexName}.html#; s#testAsmStats.html#${testStatsName}.html#;" > ${destDir}/${testDataName}.html
+	chmod +x ${destDir}/${dataName}.html
+	chmod +x ${destDir}/${testDataName}.html
+
+hubTxt:
+	rm -f ${destDir}/${hubFile}.txt
+	sed -e "s#index.html#${indexName}.html#; s#genomes.txt#${genomesTxt}.txt#;" ${srcDir}/hub.txt > ${destDir}/${hubFile}.txt
+	sed -e 's/index.html/${testIndexName}.html/; s#genomes.txt#${genomesTxt}.txt#;' ${srcDir}/hub.txt > ${destDir}/${testHubFile}.txt
+
+# all hubs have the same set of groups, no need for any name customization
+groupsTxt:
 	rm -f ${destDir}/groups.txt
 	cp -p ${toolsDir}/groups.txt ${destDir}/groups.txt
 
 clean::
-	rm -f ${destDir}/hub.txt
-	rm -f ${destDir}/testHub.txt
+	rm -f ${destDir}/${hubFile}.txt
+	rm -f ${destDir}/${testHubFile}.txt
 	rm -f ${destDir}/groups.txt
-	rm -f ${destDir}/genomes.txt
-	rm -f ${destDir}/index.html
-	rm -f ${destDir}/testIndex.html
-	rm -f ${destDir}/asmStats.html
-	rm -f ${destDir}/testAsmStats.html
+	rm -f ${destDir}/${genomesTxt}.txt
+	rm -f ${destDir}/${indexName}.html
+	rm -f ${destDir}/${testIndexName}.html
+	rm -f ${destDir}/${statsName}.html
+	rm -f ${destDir}/${testStatsName}.html