d5cbd45d0d3db423db2dbad15c653961c0bd29ac
hiram
  Wed Feb 27 13:57:14 2019 -0800
one stop shopping for trackDb now in obtainTdb() function refs #18869

diff --git src/hg/hubApi/apiUtils.c src/hg/hubApi/apiUtils.c
index 2c901fe..000290e 100644
--- src/hg/hubApi/apiUtils.c
+++ src/hg/hubApi/apiUtils.c
@@ -54,15 +54,31 @@
 {
 struct trackHub *hub = NULL;
 struct errCatch *errCatch = errCatchNew();
 if (errCatchStart(errCatch))
     {
     hub = trackHubOpen(hubUrl, "");
     }
 errCatchEnd(errCatch);
 if (errCatch->gotError)
     {
     apiErrAbort("error opening hubUrl: '%s', '%s'", hubUrl,  errCatch->message->string);
     }
 errCatchFree(&errCatch);
 return hub;
 }
+
+struct trackDb *obtainTdb(struct trackHubGenome *genome, char *db)
+/* return a full trackDb fiven the hub genome pointer, or ucsc database name */
+{
+struct trackDb *tdb = NULL;
+if (db)
+    tdb = hTrackDb(db);
+else
+    {
+    tdb = trackHubTracksForGenome(genome->trackHub, genome);
+    tdb = trackDbLinkUpGenerations(tdb);
+    tdb = trackDbPolishAfterLinkup(tdb, genome->name);
+    slSort(&tdb, trackDbCmp);
+    }
+return tdb;
+}