b02d20dede590203b6ecca10be473e7e22179a51 braney Thu Jan 12 13:12:53 2023 -0800 deal with some weird edge cases in hub that Hiram's hub illicit. Don't read a single trackDb.txt file more than once even if it's referenced from mulitple hubs. Also, only the first time a genome is defined does it get to populate its own groups. Subsequent examples get put into their own group, just like a normal track hub does. diff --git src/hg/hgHubConnect/hgHubConnect.c src/hg/hgHubConnect/hgHubConnect.c index 976b0ee..411f672 100644 --- src/hg/hgHubConnect/hgHubConnect.c +++ src/hg/hgHubConnect/hgHubConnect.c @@ -1423,36 +1423,38 @@ printf("
clearing hub %s\n",url); if (url != NULL) hubClearStatus(url); else errAbort("must specify url in %s\n", hgHubDataText); printf("Completed\n"); } static void checkTrackDbs(struct hubConnectStatus *hubList) { long beforeCheck = clock1000(); struct hubConnectStatus *hub = hubList; +boolean foundFirstGenome = FALSE; +struct hash *trackDbNameHash = newHash(5); for(; hub; hub = hub->next) { struct errCatch *errCatch = errCatchNew(); if (errCatchStart(errCatch)) { - hubAddTracks(hub, database); + hubAddTracks(hub, database, &foundFirstGenome, trackDbNameHash); } errCatchEnd(errCatch); if (errCatch->gotError) { hub->errorMessage = cloneString(errCatch->message->string); hubUpdateStatus( errCatch->message->string, hub); } else hubUpdateStatus(NULL, hub); } if (measureTiming) printf("hgHubConnect: checkTrackDbs time: %lu millis
\n", clock1000() - beforeCheck); }