5cbd092e2deb2869385fc3203282ac6c91337048
chmalee
  Tue Apr 20 10:27:40 2021 -0700
Allow different messages for each side of a relationship in the relatedTracks section of hgc/hgTrackUi. Enforce two lines per relationship in relatedTracks.ra in order to allow this, refs #25721

diff --git src/hg/makeDb/trackDb/buildRelatedTracks src/hg/makeDb/trackDb/buildRelatedTracks
index c6140a8..f626184 100755
--- src/hg/makeDb/trackDb/buildRelatedTracks
+++ src/hg/makeDb/trackDb/buildRelatedTracks
@@ -11,21 +11,27 @@
 
 if [ $# -lt 2 ] ; then
     echo "wrong # args" >&2
     usage >&2
     exit 1
 fi
 
 tbl="$1"; shift;
 
 for db in $*; do
     set +e
     grep -wq "^$db" relatedTracks.ra &> /dev/null
     if [ $? -eq 0 ]
     then
         set -e
+        # enfore two lines per relationship:
+        uniqTables=$(comm -3 <(grep -w "^$db" relatedTracks.ra | cut -d' ' -f2 | sort) <(grep -w "^$db" relatedTracks.ra | cut -d' ' -f3 | sort) | wc -l)
+        if [ $uniqTables -gt 0 ]; then
+            printf "ERROR: mismatched primary and secondary related tracks for '%s'\n" "$db"
+            exit 255
+        fi
         grep -w "^$db" relatedTracks.ra | cut -d' ' -f2- \
             | sed -e 's/ /\t/' -e 's/ /\t/' | sort -k1 -k2 \
             | hgLoadSqlTab "$db" "$tbl" ~/kent/src/hg/lib/relatedTrack.sql stdin
         printf "done building relatedTrack table for %s\n" "$db"
     fi
 done