84688c95e385ee526a59d7dac8f6ff644781361b braney Sat Aug 2 11:11:57 2025 -0700 ongoing work on quickLift. Made saved sessions work a little more rationally diff --git src/hg/lib/trackHub.c src/hg/lib/trackHub.c index 78860aebf2f..d4767d51191 100644 --- src/hg/lib/trackHub.c +++ src/hg/lib/trackHub.c @@ -1495,44 +1495,41 @@ useOneFile on\n\ email genome-www@soe.ucsc.edu\n\n", db, db, db); fprintf(f,"genome %s\n\n", db); } static char *getHubName(struct cart *cart, char *db) // get the name of the hub to use for quickLifted tracks { struct tempName hubTn; char buffer[4096]; #define quickLiftCartName "hubQuickLift" safef(buffer, sizeof buffer, "%s-%s", quickLiftCartName, db); char *hubName = cartOptionalString(cart, buffer); int fd = -1; +// we don't reuse userdata paths since they are in save sessions +if ((hubName != NULL) && strstr(hubName, "userdata")) + hubName = NULL; + if ((hubName == NULL) || ((fd = open(hubName, 0)) < 0)) { trashDirDateFile(&hubTn, "quickLift", "hub", ".txt"); hubName = cloneString(hubTn.forCgi); cartSetString(cart, buffer, hubName); } -FILE *f = mustOpen(hubName, "w"); -outHubHeader(f, db); -fclose(f); - -if (fd >= 0) - close(fd); - return hubName; } static char *vettedTracks[] = /* tracks that have been tested with quickLift */ { "decipherContainer", "decipherSnvs", "omimLocation", "omimAvSnp", "ncbiRefSeq", "clinvar", "clinvarSubLolly", "pubsBlat", "pubsMarkerBand", @@ -1884,32 +1881,33 @@ struct hash *groupHash = newHash(0); struct grp *grp; for(grp = grpList; grp; grp = grp->next) hashAdd(groupHash, grp->name, grp); for(tdb = tdbList; tdb; tdb = tdb->next) { grp = hashFindVal(groupHash, tdb->grp); tdb->groupPriority = grp->priority; } slSort(&tdbList, cmpPriority); char *filename = getHubName(cart, db); -FILE *f = mustOpen(filename, "a"); +FILE *f = mustOpen(filename, "w"); chmod(filename, 0666); +outHubHeader(f, db); walkTree(f, db, cart, tdbList, visDy, badList); fclose(f); return cloneString(filename); } struct grp *trackHubGetGrps() /* Get the groups defined by attached track hubs. */ { return trackHubGrps; } struct trackDb *trackHubAddTracksGenome(struct trackHubGenome *hubGenome) /* Load up stuff from data hub and return list. */