c11260d13e2c55808aa97525c9e5c2205aa768ec
chmalee
  Thu Sep 10 11:33:29 2020 -0700
Make hubCheck warn on missing description pages, refs #13428

diff --git src/hg/utils/hubCheck/hubCheck.c src/hg/utils/hubCheck/hubCheck.c
index 7f7aa4f..a17bc41 100644
--- src/hg/utils/hubCheck/hubCheck.c
+++ src/hg/utils/hubCheck/hubCheck.c
@@ -780,38 +780,45 @@
     {
     dyStringPrintf(errors, "trackData['%s'] = [", idName);
     }
 
 if (errCatchStart(errCatch))
     {
     hubCheckParentsAndChildren(tdb);
     if (trackIsContainer)
         retVal |= hubCheckCompositeSettings(genome, tdb, errors, options);
 
     if (tdbIsSubtrack(tdb))
         retVal |= hubCheckSubtrackSettings(genome, tdb, errors, options);
 
     if (options->checkFiles)
         hubCheckBigDataUrl(hub, genome, tdb);
+    trackHubAddDescription(genome->trackDbFile, tdb);
+    if (!tdb->html)
+        warn("missing description page for track: '%s'", tdb->track);
     }
 errCatchEnd(errCatch);
 if (errCatch->gotError)
     {
     trackDbErrorCount += 1;
     retVal = 1;
     trackDbErr(errors, errCatch->message->string, genome, tdb, options->htmlOut);
     }
+if (errCatch->gotWarning)
+    {
+    trackDbErr(errors, errCatch->message->string, genome, tdb, options->htmlOut);
+    }
 errCatchFree(&errCatch);
 
 if (options->htmlOut)
     {
     if (trackIsContainer)
         {
         for (tempTdb = tdb->subtracks; tempTdb != NULL; tempTdb = tempTdb->next)
             {
             char subtrackName[512];
             safef(subtrackName, sizeof(subtrackName), "%s_%s", trackHubSkipHubName(genome->name), trackHubSkipHubName(tempTdb->track));
             textName = trackHubSkipHubName(tempTdb->longLabel);
             dyStringPrintf(errors, "%s,", makeFolderObjectString(subtrackName, textName, idName, "TRACK", TRUE, retVal));
             }
         }
     else if (!retVal)