5aa41d849c2e4e5c42e9c949e1b6743148905f81
kent
  Thu Jun 17 16:46:30 2010 -0700
Rearranging things so that hgTracks.c module is not so severely changed by the web service stuff.
diff --git src/hg/hgTracks/hgTrackRender.c src/hg/hgTracks/hgTrackRender.c
deleted file mode 100644
index e29d07b..0000000
--- src/hg/hgTracks/hgTrackRender.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/* hgTrackRender - execute enough of browser to render one track. */
-
-#include "common.h"
-#include "linefile.h"
-#include "hash.h"
-#include "htmshell.h"
-#include "errabort.h"
-#include "portable.h"
-#include "cheapcgi.h"
-#include "ra.h"
-#include "hdb.h"
-#include "hgTracks.h"
-
-static void usage()
-/* Print out usage and exit - just temporary. */
-{
-errAbort(
-"hgTrackRender - execute enough of browser to render one track.\n"
-"usage:\n"
-"      hgTrackRender track.ra cart.ra output.ps\n"
-"where track.ra is a trackDb.ra entry flattened out to include stuff inherited from parent\n"
-"and cart.ra is a file with the cart settings.  Both .ra files should just have a single stanza\n"
-);
-}
-
-struct track *trackFromSettingsHash(struct hash *settings)
-/* Wrap a trackDb, and then a track around settings, and return track. */
-{
-struct trackDb *tdb = trackDbNew();
-tdb->settingsHash = settings;
-tdb->track = hashMustFindVal(settings, "track");
-trackDbFieldsFromSettings(tdb);
-trackDbAddTableField(tdb);
-return trackFromTrackDb(tdb);
-}
-
-static void hgTrackRenderFromCommandLine(char *trackFile, char *cartFile, char *outFile)
-/* Generate tracks from trackFile and cart from cartFile, both in .ra format.  Then
- * call makeActiveImage, the heart of the genome browser.*/
-{
-struct track *track, *trackList = NULL;
-
-/* Load in cart file into a single hash and then wrap a cart around it. 
- * We need to set cart before we can make tracks. */
-struct hash *cartHash = raReadSingle(cartFile);
-cart = cartFromHash(cartHash);
-database = hashMustFindVal(cartHash, "db");
-position = cloneString(hashMustFindVal(cartHash, "position"));
-if (!hgParseChromRange(NULL, position, &chromName, &winStart, &winEnd))
-    errAbort("position not in chrom:start-end format");
-
-uglyf("Got %d vars in %s\n", cartHash->elCount, cartFile);
-
-/* Initialize layout. */
-initTl();
-setLayoutGlobals();
-
-/* Make list of tracks out of track file. */
-struct lineFile *lf = lineFileOpen(trackFile, TRUE);
-struct hash *trackRa;
-while ((trackRa = raNextRecord(lf)) != NULL)
-    {
-    track = trackFromSettingsHash(trackRa);
-    slAddHead(&trackList, track);
-    }
-slReverse(&trackList);
-lineFileClose(&lf);
-uglyf("Got %d tracks in %s\n", slCount(trackList), trackFile);
-
-/* Prepare track list for drawing. */
-for (track = trackList; track != NULL; track = track->next)
-    {
-    track->loadItems(track);
-    uglyf("%s has %d items\n", track->track, slCount(track->items));
-    }
-makeActiveImage(trackList, outFile);
-}
-
-int main(int argc, char *argv[])
-{
-/* Set up some timing since we're trying to optimize things very often. */
-long enteredMainTime = clock1000();
-uglyTime(NULL);
-measureTiming = TRUE;
-
-/* Push very early error handling - this is just
- * for the benefit of the cgiVarExists, which
- * somehow can't be moved effectively into doMiddle. */
-// htmlPushEarlyHandlers();
-
-/* Set up cgi vars from command line. */
-cgiSpoof(&argc, argv);
-
-if (argc != 4)
-    usage();
-
-hgTrackRenderFromCommandLine(argv[1], argv[2], argv[3]);
-
-if (measureTiming)
-    {
-    fprintf(stdout, "Overall total time: %ld millis<BR>\n",
-    clock1000() - enteredMainTime);
-    }
-return 0;
-}