84881cd63a7a22436c8f6915a9b587941e923f73
braney
  Wed Apr 5 15:52:22 2017 -0700
check hgdownload for public.ix if not stored locally

diff --git src/hg/hgHubConnect/hgHubConnect.c src/hg/hgHubConnect/hgHubConnect.c
index dc41848..df88f2c 100644
--- src/hg/hgHubConnect/hgHubConnect.c
+++ src/hg/hgHubConnect/hgHubConnect.c
@@ -14,30 +14,31 @@
 #include "cheapcgi.h"
 #include "htmshell.h"
 #include "hdb.h"
 #include "hui.h"
 #include "cart.h"
 #include "dbDb.h"
 #include "web.h"
 #include "trackHub.h"
 #include "hubConnect.h"
 #include "dystring.h"
 #include "hPrint.h"
 #include "jsHelper.h"
 #include "obscure.h"
 #include "hgConfig.h"
 #include "trix.h"
+#include "net.h"
 
 
 struct cart *cart;	/* The user's ui state. */
 struct hash *oldVars = NULL;
 
 static char *pageTitle = "Track Data Hubs";
 char *database = NULL;
 char *organism = NULL;
 
 static void ourCellStart()
 {
 fputs("<TD>", stdout);  // do not add a newline
 }
 
 static void ourCellEnd()
@@ -304,34 +305,37 @@
 struct trix *trix = trixOpen(trixFile);
 int trixWordCount = chopString(hubSearchTerms, " ", NULL, 0);
 char *trixWords[trixWordCount];
 trixWordCount = chopString(hubSearchTerms, " ", trixWords, trixWordCount);
 
 struct trixSearchResult *tsList = trixSearch(trix, trixWordCount, trixWords, tsmExpand);
 for ( ; tsList != NULL; tsList = tsList->next)
     hashStore(urlSearchHash, tsList->itemId);
 
 return urlSearchHash;
 }
 
 static boolean outputPublicTable(struct sqlConnection *conn, char *publicTable, char *statusTable, struct hash **pHash)
 /* Put up the list of public hubs and other controls for the page. */
 {
-char *trixFile = cfgOptionEnvDefault("HUBSEARCHTRIXFILE", "hubSearchTrixFile", "/gbdb/hubs/public.ix");
+char *trixFile = hReplaceGbdb(cfgOptionEnvDefault("HUBSEARCHTRIXFILE", "hubSearchTrixFile", "/gbdb/hubs/public.ix"));
 char *hubSearchTerms = cartOptionalString(cart, hgHubSearchTerms);
 char *cleanSearchTerms = cloneString(hubSearchTerms);
-boolean haveTrixFile = fileExists(trixFile);
+int trixFd = netUrlOpen(trixFile);
+boolean haveTrixFile = (trixFd != -1);
+if (haveTrixFile)
+    close(trixFd);
 struct hash *urlSearchHash = NULL;
 
 printf("<div id=\"publicHubs\" class=\"hubList\"> \n");
 
 // if we have a trix file, draw the search box
 if (haveTrixFile)
     {
     puts("Enter search terms to find in public track hub description pages:<BR>"
 	"<input name=\"hubSearchTerms\" id=\"hubSearchTerms\" class=\"hubField\" "
 	"type=\"text\" size=\"65\"> \n"
 	"<input name=\"hubSearchButton\" id='hubSearchButton' "
 	    "class=\"hubField\" type=\"button\" value=\"Search Public Hubs\">\n");
     jsOnEventById("click", "hubSearchButton",
 	"document.searchHubForm.elements['hubSearchTerms'].value=$('#hubSearchTerms').val();"
 	"document.searchHubForm.submit();return true;");