a678ada6c54aca4486bef3da5a363ab614e8c733
kate
  Wed May 13 09:01:24 2015 -0700
Add version check features to hubCheck (-version, -core, -extra, -settings).  Initial coding, not yet functional.  Also added levels (for testing only) to settings spec. refs #10015

diff --git src/hg/inc/trackHub.h src/hg/inc/trackHub.h
index 6467f19..ee5cb7e 100644
--- src/hg/inc/trackHub.h
+++ src/hg/inc/trackHub.h
@@ -58,43 +58,46 @@
     char *twoBitPath;  /* URL to twoBit.  If not null, this is an assmebly hub*/
     struct twoBitFile *tbf;  /* open handle to two bit file */
     char *groups;	     /* URL to group.txt file */
     char *defaultPos;        /* default position */
     char *organism;          /* organism name, like Human */
     char *description;       /* description, also called freeze name */
     struct trackHub *trackHub; /* associated track hub */
     unsigned orderKey;   /* the orderKey for changing the order from the order in the file */
     };
 
 struct trackHubCheckOptions
 /* How to check track hub */
     {
     char *version;              /* hub spec version to check */
     boolean strict;             /* check hub is valid to 'core' level for version */
-    struct hash *extra;         /* additional trackDb settings to accept */
+    char *extraFile;            /* name of extra file/url with additional settings to accept */
     boolean checkFiles;         /* check remote files exist and are correct type */
+    /* intermediate data */
+    struct hash *settings;      /* supported settings for this version */
+    struct hash *extra;         /* additional trackDb settings to accept */
     };
 
 struct trackHubSetting
 /* Setting name and support level, from trackDbHub.html (the spec) */
     {
     struct trackHubSetting *next;
     char *name;                 /* setting name */
     char *level;                /* support level (core, full, new, deprecated) */
     };
 
-struct trackHubSetting *trackHubSettingsForVersion(char *version, char *specUrl);
+struct trackHubSetting *trackHubSettingsForVersion(char *version);
 /* Return list of settings with support level */
 
 char *trackHubVersionDefault();
 /* Return current hub version */
 
 void trackHubClose(struct trackHub **pHub);
 /* Close up and free resources from hub. */
 
 struct trackHub *trackHubOpen(char *url, char *hubName);
 /* Open up a track hub from url.  Reads and parses hub.ra and the genomesFile. 
  * The hubName is generally just the asciified ID number. */
 
 struct trackHubGenome *trackHubFindGenome(struct trackHub *hub, char *genomeName);
 /* Return trackHubGenome of given name associated with hub.  Return NULL if no
  * such genome. */