Index: trunk/ippTools/src/Makefile.am
===================================================================
--- trunk/ippTools/src/Makefile.am	(revision 6061)
+++ trunk/ippTools/src/Makefile.am	(revision 6063)
@@ -31,5 +31,5 @@
 
 noinst_HEADERS = \
-	p2search.h
+	p2tools.h
 
 clean-local:
Index: trunk/ippTools/src/chiptool.c
===================================================================
--- trunk/ippTools/src/chiptool.c	(revision 6061)
+++ trunk/ippTools/src/chiptool.c	(revision 6063)
@@ -1,3 +1,3 @@
-# include "p2search.h"
+# include "p2tools.h"
 
 int main (int argc, char **argv) {
Index: trunk/ippTools/src/chiptool.h
===================================================================
--- trunk/ippTools/src/chiptool.h	(revision 6061)
+++ 	(revision )
@@ -1,86 +1,0 @@
-# include <stdio.h>
-# include <strings.h>  // for strcasecmp
-# include <unistd.h>   // for unlink
-# include <pslib.h>
-# include <pmObjects.h>
-# include <pmPSF.h>
-# include <pmPSFtry.h>
-# include <pmModelGroup.h>
-# include <metadatadb.h>
-
-// load these values from the db in the init stage
-# define P2_TYPE_OBJECT 1
-# define P2_STATE_READY 2
-# define RECIPE "PHASE2"
-# define MAX_ROWS 10e9
-
-typedef enum {
-    P2_MODE_NONE,		      	// grab from raw, output for ppImage
-    P2_MODE_QUICK,		      	// grab from raw, output for ppImage
-    P2_MODE_DEFINE,			// grab from raw, create pending
-    P2_MODE_PENDING,			// grab from pending, output for ppImage
-    P2_MODE_UPDATE,			// set the current state
-    P2_MODE_DONE,			// set the current state
-    P2_MODE_CREATE,			// set the current state
-    P2_MODE_DELETE,			// set the current state
-} p2mode;
-
-typedef struct {
-    p2mode mode;
-    psTime *start;
-    psTime *stop;
-    psSphere r1;
-    psSphere r2;
-    psMetadata *camera;
-    char *camera_name;
-    char *filter;
-    psDB *database;
-    psMetadata *site;
-    psMetadata *recipe;
-    psMetadata *arguments;
-} p2Config;
-
-typedef struct {
-    rawScienceExpRow *exposure;
-    psArray *images;
-} ppRawFrame;
-
-ppRawFrame *ppRawFrameAlloc(
-    rawScienceExpRow *exposure,
-    psArray *images
-);
-
-typedef struct {
-    p2PendingExpRow *exposure;
-    psArray *images;
-} p2PendingFrame;
-
-p2PendingFrame *p2PendingFrameAlloc(
-    p2PendingExpRow *exposure,
-    psArray *images
-);
-
-typedef struct {
-    p2DoneExpRow *exposure;
-    psArray *images;
-} p2DoneFrame;
-
-p2DoneFrame *p2DoneFrameAlloc(
-    p2DoneExpRow *exposure,
-    psArray *images
-);
-
-bool p2createTables (p2Config *config);
-bool p2deleteTables (p2Config *config);
-bool p2adminConfig (p2Config *config, int argc, char **argv);
-bool p2searchConfig (p2Config *config, int argc, char **argv);
-psArray *p2rawToPending (p2Config *config, psArray *rawFrames);
-psArray *p2searchRawFrames (p2Config *config);
-bool p2insertPendingFrames (p2Config *config, psArray *rawFrames);
-psArray *p2searchPendingFrames (p2Config *config);
-bool p2writePendingImages (p2Config *config, psArray *frames);
-bool p2updatePendingFrames (p2Config *config, psArray *pendingFrames);
-psArray *p2pendingToDone (p2Config *config, psArray *pendingFrames);
-bool p2insertDoneFrames (p2Config *config, psArray *doneFrames);
-bool psTimeIsZero(psTime *time);
-bool p2writePendingFrames (p2Config *config, psArray *frames);
Index: trunk/ippTools/src/chiptoolConfig.c
===================================================================
--- trunk/ippTools/src/chiptoolConfig.c	(revision 6061)
+++ trunk/ippTools/src/chiptoolConfig.c	(revision 6063)
@@ -1,5 +1,5 @@
 #include <pmConfig.h>
 
-# include "p2search.h"
+# include "p2tools.h"
 
 bool p2searchConfig (p2Config *config, int argc, char **argv) {
Index: trunk/ippTools/src/p2insertDoneFrames.c
===================================================================
--- trunk/ippTools/src/p2insertDoneFrames.c	(revision 6061)
+++ trunk/ippTools/src/p2insertDoneFrames.c	(revision 6063)
@@ -1,4 +1,4 @@
 # include <metadatadb.h>
-# include "p2search.h"
+# include "p2tools.h"
 
 // select pending frames (exposure+images) which are done/not done
Index: trunk/ippTools/src/p2insertPendingFrames.c
===================================================================
--- trunk/ippTools/src/p2insertPendingFrames.c	(revision 6061)
+++ trunk/ippTools/src/p2insertPendingFrames.c	(revision 6063)
@@ -1,4 +1,4 @@
 #include <metadatadb.h>
-# include "p2search.h"
+# include "p2tools.h"
 
 // select pending frames (exposure+images) which are done/not done
Index: trunk/ippTools/src/p2pendingToDone.c
===================================================================
--- trunk/ippTools/src/p2pendingToDone.c	(revision 6061)
+++ trunk/ippTools/src/p2pendingToDone.c	(revision 6063)
@@ -1,3 +1,3 @@
-# include "p2search.h"
+# include "p2tools.h"
 
 // select pending frames (exposure+images) which are done/not done
Index: trunk/ippTools/src/p2rawToPending.c
===================================================================
--- trunk/ippTools/src/p2rawToPending.c	(revision 6061)
+++ trunk/ippTools/src/p2rawToPending.c	(revision 6063)
@@ -1,3 +1,3 @@
-# include "p2search.h"
+# include "p2tools.h"
 
 // select pending frames (exposure+images) which are done/not done
Index: trunk/ippTools/src/p2searchPendingFrames.c
===================================================================
--- trunk/ippTools/src/p2searchPendingFrames.c	(revision 6061)
+++ trunk/ippTools/src/p2searchPendingFrames.c	(revision 6063)
@@ -1,3 +1,3 @@
-# include "p2search.h"
+# include "p2tools.h"
 
 bool psTimeIsZero(psTime *time) {
Index: trunk/ippTools/src/p2searchRawFrames.c
===================================================================
--- trunk/ippTools/src/p2searchRawFrames.c	(revision 6061)
+++ trunk/ippTools/src/p2searchRawFrames.c	(revision 6063)
@@ -1,3 +1,3 @@
-# include "p2search.h"
+# include "p2tools.h"
 
 // select raw frames (exposure+images) which match the given config options
Index: trunk/ippTools/src/p2tools.c
===================================================================
--- trunk/ippTools/src/p2tools.c	(revision 6063)
+++ trunk/ippTools/src/p2tools.c	(revision 6063)
@@ -0,0 +1,38 @@
+# include "p2tools.h"
+
+int main (int argc, char **argv) {
+    psArray         *rawFrames = NULL;
+    psArray         *doneFrames = NULL;
+    psArray         *pendingFrames = NULL;
+    p2Config        config;
+
+    p2searchConfig (&config, argc, argv);
+
+    if (config.mode == P2_MODE_QUICK) {
+        rawFrames = p2searchRawFrames (&config);
+        pendingFrames = p2rawToPending (&config, rawFrames);
+        p2writePendingFrames (&config, pendingFrames);
+    }
+
+    if (config.mode == P2_MODE_DEFINE) {
+        rawFrames = p2searchRawFrames (&config);
+        p2insertPendingFrames (&config, rawFrames);
+    }
+
+    if (config.mode == P2_MODE_PENDING) {
+        pendingFrames = p2searchPendingFrames (&config);
+        p2writePendingFrames (&config, pendingFrames);
+    }
+
+    if (config.mode == P2_MODE_UPDATE) {
+        p2updatePendingFrames (&config, pendingFrames);
+    }
+
+    if (config.mode == P2_MODE_DONE) {
+        pendingFrames = p2searchPendingFrames (&config);
+        doneFrames = p2pendingToDone (&config, pendingFrames);
+        p2insertDoneFrames (&config, doneFrames);
+    }
+
+    exit (0);
+}
Index: trunk/ippTools/src/p2updatePending.c
===================================================================
--- trunk/ippTools/src/p2updatePending.c	(revision 6061)
+++ trunk/ippTools/src/p2updatePending.c	(revision 6063)
@@ -1,3 +1,3 @@
-# include "p2search.h"
+# include "p2tools.h"
 
 // select pending frames (exposure+images) which are not done, select their done images, count, update
Index: trunk/ippTools/src/p2writePendingFrames.c
===================================================================
--- trunk/ippTools/src/p2writePendingFrames.c	(revision 6061)
+++ trunk/ippTools/src/p2writePendingFrames.c	(revision 6063)
@@ -1,3 +1,3 @@
-# include "p2search.h"
+# include "p2tools.h"
 
 // select pending frames (exposure+images) which are done/not done
Index: trunk/ippTools/src/pxadmin.c
===================================================================
--- trunk/ippTools/src/pxadmin.c	(revision 6061)
+++ trunk/ippTools/src/pxadmin.c	(revision 6063)
@@ -1,5 +1,5 @@
 # include <metadatadb.h>
 
-# include "p2search.h"
+# include "p2tools.h"
 
 int main (int argc, char **argv) {
Index: trunk/ippTools/src/pxadminConfig.c
===================================================================
--- trunk/ippTools/src/pxadminConfig.c	(revision 6061)
+++ trunk/ippTools/src/pxadminConfig.c	(revision 6063)
@@ -1,4 +1,4 @@
 # include <pmConfig.h>
-# include "p2search.h"
+# include "p2tools.h"
 
 bool p2adminConfig (p2Config *config, int argc, char **argv) {
Index: trunk/ippTools/src/pxalloc.c
===================================================================
--- trunk/ippTools/src/pxalloc.c	(revision 6061)
+++ trunk/ippTools/src/pxalloc.c	(revision 6063)
@@ -1,5 +1,5 @@
 #include <pslib.h>
 
-#include "p2search.h"
+#include "p2tools.h"
 
 static void ppRawFrameFree(ppRawFrame *ptr);
Index: trunk/ippTools/src/pxtools.h
===================================================================
--- trunk/ippTools/src/pxtools.h	(revision 6063)
+++ trunk/ippTools/src/pxtools.h	(revision 6063)
@@ -0,0 +1,86 @@
+# include <stdio.h>
+# include <strings.h>  // for strcasecmp
+# include <unistd.h>   // for unlink
+# include <pslib.h>
+# include <pmObjects.h>
+# include <pmPSF.h>
+# include <pmPSFtry.h>
+# include <pmModelGroup.h>
+# include <metadatadb.h>
+
+// load these values from the db in the init stage
+# define P2_TYPE_OBJECT 1
+# define P2_STATE_READY 2
+# define RECIPE "PHASE2"
+# define MAX_ROWS 10e9
+
+typedef enum {
+    P2_MODE_NONE,		      	// grab from raw, output for ppImage
+    P2_MODE_QUICK,		      	// grab from raw, output for ppImage
+    P2_MODE_DEFINE,			// grab from raw, create pending
+    P2_MODE_PENDING,			// grab from pending, output for ppImage
+    P2_MODE_UPDATE,			// set the current state
+    P2_MODE_DONE,			// set the current state
+    P2_MODE_CREATE,			// set the current state
+    P2_MODE_DELETE,			// set the current state
+} p2mode;
+
+typedef struct {
+    p2mode mode;
+    psTime *start;
+    psTime *stop;
+    psSphere r1;
+    psSphere r2;
+    psMetadata *camera;
+    char *camera_name;
+    char *filter;
+    psDB *database;
+    psMetadata *site;
+    psMetadata *recipe;
+    psMetadata *arguments;
+} p2Config;
+
+typedef struct {
+    rawScienceExpRow *exposure;
+    psArray *images;
+} ppRawFrame;
+
+ppRawFrame *ppRawFrameAlloc(
+    rawScienceExpRow *exposure,
+    psArray *images
+);
+
+typedef struct {
+    p2PendingExpRow *exposure;
+    psArray *images;
+} p2PendingFrame;
+
+p2PendingFrame *p2PendingFrameAlloc(
+    p2PendingExpRow *exposure,
+    psArray *images
+);
+
+typedef struct {
+    p2DoneExpRow *exposure;
+    psArray *images;
+} p2DoneFrame;
+
+p2DoneFrame *p2DoneFrameAlloc(
+    p2DoneExpRow *exposure,
+    psArray *images
+);
+
+bool p2createTables (p2Config *config);
+bool p2deleteTables (p2Config *config);
+bool p2adminConfig (p2Config *config, int argc, char **argv);
+bool p2searchConfig (p2Config *config, int argc, char **argv);
+psArray *p2rawToPending (p2Config *config, psArray *rawFrames);
+psArray *p2searchRawFrames (p2Config *config);
+bool p2insertPendingFrames (p2Config *config, psArray *rawFrames);
+psArray *p2searchPendingFrames (p2Config *config);
+bool p2writePendingImages (p2Config *config, psArray *frames);
+bool p2updatePendingFrames (p2Config *config, psArray *pendingFrames);
+psArray *p2pendingToDone (p2Config *config, psArray *pendingFrames);
+bool p2insertDoneFrames (p2Config *config, psArray *doneFrames);
+bool psTimeIsZero(psTime *time);
+bool p2writePendingFrames (p2Config *config, psArray *frames);
