612baf5a4599ab93d0f430c538e9fb16bc3c8d3d
braney
  Mon Jun 24 13:51:05 2019 -0700
move trackDbCache stuff to its own file.  Remove dependencies on
/dev/shm being the cache location.

diff --git src/hg/lib/hubConnect.c src/hg/lib/hubConnect.c
index cbac65e..9a752d5 100644
--- src/hg/lib/hubConnect.c
+++ src/hg/lib/hubConnect.c
@@ -707,58 +707,55 @@
 hDisconnectCentral(&conn);
 }
 
 struct trackDb *hubAddTracks(struct hubConnectStatus *hub, char *database)
 /* Load up stuff from data hub and return list. */
 {
 /* Load trackDb.ra file and make it into proper trackDb tree */
 struct trackDb *tdbList = NULL;
 struct trackHub *trackHub = hub->trackHub;
 
 if (trackHub != NULL)
     {
     struct trackHubGenome *hubGenome = trackHubFindGenome(trackHub, database);
     if (hubGenome != NULL)
 	{
-        char *trackDbCacheDir = cfgOption("cacheTrackDbDir");
-        boolean doCache = FALSE;
-        if (trackDbCacheDir != NULL)
-            doCache = TRUE;
+        boolean doCache = trackDbCacheOn();
 
         if (doCache)
             {
             // we have to open the trackDb file to get the udc cache to check for an update
             struct udcFile *checkCache = udcFileMayOpen(hubGenome->trackDbFile, NULL);
             time_t time = udcUpdateTime(checkCache);
             udcFileClose(&checkCache);
 
-            struct trackDb *cacheTdb = trackDbHubCache(hubGenome->trackDbFile, time, trackDbCacheDir);
+            struct trackDb *cacheTdb = trackDbHubCache(hubGenome->trackDbFile, time);
 
             if (cacheTdb != NULL)
                 return cacheTdb;
 
             memCheckPoint(); // we want to know how much memory is used to build the tdbList
             }
 
         tdbList = trackHubTracksForGenome(trackHub, hubGenome);
         tdbList = trackDbLinkUpGenerations(tdbList);
         tdbList = trackDbPolishAfterLinkup(tdbList, database);
         trackDbPrioritizeContainerItems(tdbList);
         trackHubPolishTrackNames(trackHub, tdbList);
 
         if (doCache)
-            trackDbHubCloneTdbListToSharedMem(hubGenome->trackDbFile, tdbList, memCheckPoint(), trackDbCacheDir);
+            trackDbHubCloneTdbListToSharedMem(hubGenome->trackDbFile, tdbList, memCheckPoint());
 	}
     }
 return tdbList;
 }
 
 static struct grp *grpFromHub(struct hubConnectStatus *hub)
 /* Make up a grp structur from hub */
 {
 struct grp *grp;
 AllocVar(grp);
 char name[16];
 safef(name, sizeof(name), "hub_%d", hub->id);
 grp->name = cloneString(name);
 grp->label = cloneString(hub->trackHub->shortLabel);
 return grp;