be3dc2f7f8a22768c79f2ec27dbea7fc78a2bd95 braney Thu Oct 6 14:14:13 2016 -0700 first pass at supporting tagStorm in track hubs. diff --git src/hg/lib/trackHub.c src/hg/lib/trackHub.c index ff68898..fe7a5cd 100644 --- src/hg/lib/trackHub.c +++ src/hg/lib/trackHub.c @@ -848,34 +848,43 @@ // clear these two pointers which we set in markContainers tdb->subtracks = NULL; tdb->parent = NULL; } } struct trackDb *trackHubTracksForGenome(struct trackHub *hub, struct trackHubGenome *genome) /* Get list of tracks associated with genome. Check that it only is composed of legal * types. Do a few other quick checks to catch errors early. */ { struct lineFile *lf = udcWrapShortLineFile(genome->trackDbFile, NULL, 64*1024*1024); struct trackDb *tdbList = trackDbFromOpenRa(lf, NULL); lineFileClose(&lf); +char *tagStormName = hashFindVal(genome->settingsHash, "tagStorm"); +char *absStormName = NULL; +if (tagStormName) + absStormName = trackHubRelativeUrl(hub->url, tagStormName); + /* Make bigDataUrls more absolute rather than relative to genome.ra dir */ struct trackDb *tdb; for (tdb = tdbList; tdb != NULL; tdb = tdb->next) + { expandBigDataUrl(hub, genome, tdb); + if (absStormName) + hashReplace(tdb->settingsHash, "tagStorm", absStormName); + } validateTracks(hub, genome, tdbList); trackDbAddTableField(tdbList); if (!isEmpty(hub->name)) trackHubAddNamePrefix(hub->name, tdbList); if (genome->twoBitPath == NULL) trackHubAddGroupName(hub->name, tdbList); for (tdb = tdbList; tdb != NULL; tdb = tdb->next) { trackDbFieldsFromSettings(tdb); trackDbPolish(tdb); } return tdbList; }