1b64478747b87c045f07b9a56b2ca3179260e4c4 hiram Wed Aug 12 16:20:20 2026 -0700 protect a string substitution against odd characters per code review refs #38005 diff --git src/hg/makeDb/doc/asmHubs/mkSymLinks.pl src/hg/makeDb/doc/asmHubs/mkSymLinks.pl index 604760b05ea..1d681017129 100755 --- src/hg/makeDb/doc/asmHubs/mkSymLinks.pl +++ src/hg/makeDb/doc/asmHubs/mkSymLinks.pl @@ -238,31 +238,31 @@ `ln -s "${buildDir}/${asmId}.rmsk.customLib.fa.gz" "${destDir}/${accessionId}.rmsk.customLib.fa.gz"` if (-s "${buildDir}/${asmId}.rmsk.customLib.fa.gz"); `ln -s "${buildDir}/${asmId}.repeatMasker.out.gz" "${destDir}/${accessionId}.repeatMasker.out.gz"` if (-s "${buildDir}/${asmId}.repeatMasker.out.gz"); `ln -s "${buildDir}/${asmId}.repeatModeler.out.gz" "${destDir}/${accessionId}.repeatModeler.out.gz"` if (-s "${buildDir}/${asmId}.repeatModeler.out.gz"); `ln -s "${buildDir}/${asmId}.repeatMasker.version.txt" "${destDir}/${accessionId}.repeatMasker.version.txt"` if (-s "${buildDir}/${asmId}.repeatMasker.version.txt"); `ln -s "${buildDir}/${asmId}.repeatModeler.version.txt" "${destDir}/${accessionId}.repeatModeler.version.txt"` if (-s "${buildDir}/${asmId}.repeatModeler.version.txt"); `ln -s "${buildDir}/${asmId}.repeatModeler.families.fa.gz" "${destDir}/${accessionId}.repeatModeler.families.fa.gz"` if (-s "${buildDir}/${asmId}.repeatModeler.families.fa.gz"); `ln -s "${buildDir}/${asmId}.repeatModeler.families.stk.gz" "${destDir}/${accessionId}.repeatModeler.families.stk.gz"` if (-s "${buildDir}/${asmId}.repeatModeler.families.stk.gz"); `ln -s "${buildDir}/${asmId}.repeatModeler.2bit" "${destDir}/${accessionId}.repeatModeler.2bit"` if (-s "${buildDir}/${asmId}.repeatModeler.2bit"); `ln -s "${buildDir}/${asmId}.rmod.log.txt" "${destDir}/${accessionId}.rmod.log.txt"` if (-s "${buildDir}/${asmId}.rmod.log.txt"); `ln -s "${buildDir}/download/${asmId}_assembly_report.txt" "${destDir}/${accessionId}_assembly_report.txt"` if (-s "${buildDir}/download/${asmId}_assembly_report.txt"); if (-d "${buildDir}/trackData/ncbiGene/archive") { `mkdir -p "${buildDir}/archive"`; `mkdir -p "${buildDir}/archive/ncbiGene"`; `mkdir -p "${destDir}/archive"`; foreach my $subDir (grep { -d } glob("${buildDir}/trackData/ncbiGene/archive/20*")) { - $subDir =~ s#${buildDir}/##; + $subDir =~ s#\Q${buildDir}\E/##; my $archiveDate = basename(${subDir}); `rm -f "${buildDir}/archive/ncbiGene/${archiveDate}"`; `ln -s "../../${subDir}" "${buildDir}/archive/ncbiGene/"`; } `ln -s "${buildDir}/archive/ncbiGene" "${destDir}/archive/ncbiGene"`; } # trackDb.txt still needed for use by top-level genomes.txt file `ln -s "${buildDir}/${asmId}.trackDb.txt" "${destDir}/trackDb.txt"` if (-s "${buildDir}/${asmId}.trackDb.txt"); # genomes.txt obsolete now with single file # `ln -s "${buildDir}/${asmId}.genomes.txt" "${destDir}/genomes.txt"` if (-s "${buildDir}/${asmId}.genomes.txt"); `ln -s "${buildDir}/${asmId}.download.genomes.txt" "${destDir}/download.genomes.txt"` if (-s "${buildDir}/${asmId}.download.genomes.txt"); foreach my $hubTxt (@stageHub) { if (-s "${buildDir}/${hubTxt}.hub.txt") { `ln -s "${buildDir}/${hubTxt}.hub.txt" "${destDir}/${hubTxt}.hub.txt"`; `ln -s "${buildDir}/${hubTxt}.hub.txt" "${gbdbDir}/${hubTxt}.hub.txt"`;