Index: /branches/eam_branch_20080719/ippTools/share/camtool_donecleanup.sql
===================================================================
--- /branches/eam_branch_20080719/ippTools/share/camtool_donecleanup.sql	(revision 18942)
+++ /branches/eam_branch_20080719/ippTools/share/camtool_donecleanup.sql	(revision 18942)
@@ -0,0 +1,5 @@
+SELECT
+    camRun.*
+FROM camRun
+WHERE
+    camRun.state = 'cleaned'
Index: /branches/eam_branch_20080719/ippTools/share/camtool_pendingcleanupexp.sql
===================================================================
--- /branches/eam_branch_20080719/ippTools/share/camtool_pendingcleanupexp.sql	(revision 18941)
+++ /branches/eam_branch_20080719/ippTools/share/camtool_pendingcleanupexp.sql	(revision 18942)
@@ -1,15 +1,15 @@
 SELECT
-    chipProcessedImfile.*,
-    chipRun.state,
-    chipRun.workdir,
-    chipRun.label,
-    chipRun.reduction,
-    chipRun.expgroup,
-    chipRun.dvodb,
-    chipRun.tess_id,
-    chipRun.end_stage
-FROM chipRun
-JOIN chipProcessedImfile
-    USING(chip_id)
+    camProcessedExp.*,
+    camRun.state,
+    camRun.workdir,
+    camRun.label,
+    camRun.reduction,
+    camRun.expgroup,
+    camRun.dvodb,
+    camRun.tess_id,
+    camRun.end_stage
+FROM camRun
+JOIN camProcessedExp
+    USING(cam_id)
 WHERE
-    chipRun.state = 'goto_cleaned'
+    camRun.state = 'goto_cleaned'
Index: /branches/eam_branch_20080719/ippTools/share/difftool_donecleanup.sql
===================================================================
--- /branches/eam_branch_20080719/ippTools/share/difftool_donecleanup.sql	(revision 18942)
+++ /branches/eam_branch_20080719/ippTools/share/difftool_donecleanup.sql	(revision 18942)
@@ -0,0 +1,5 @@
+SELECT
+    diffRun.*
+FROM diffRun
+WHERE
+    diffRun.state = 'cleaned'
Index: /branches/eam_branch_20080719/ippTools/share/difftool_pendingcleanupskyfile.sql
===================================================================
--- /branches/eam_branch_20080719/ippTools/share/difftool_pendingcleanupskyfile.sql	(revision 18941)
+++ /branches/eam_branch_20080719/ippTools/share/difftool_pendingcleanupskyfile.sql	(revision 18942)
@@ -1,15 +1,11 @@
 SELECT
-    chipProcessedImfile.*,
-    chipRun.state,
-    chipRun.workdir,
-    chipRun.label,
-    chipRun.reduction,
-    chipRun.expgroup,
-    chipRun.dvodb,
-    chipRun.tess_id,
-    chipRun.end_stage
-FROM chipRun
-JOIN chipProcessedImfile
-    USING(chip_id)
+    diffSkyfile.*,
+    diffRun.state,
+    diffRun.workdir,
+    diffRun.dvodb,
+    diffRun.tess_id,
+FROM diffRun
+JOIN diffSkyfile
+    USING(diff_id)
 WHERE
-    chipRun.state = 'goto_cleaned'
+    diffRun.state = 'goto_cleaned'
Index: /branches/eam_branch_20080719/ippTools/share/faketool_donecleanup.sql
===================================================================
--- /branches/eam_branch_20080719/ippTools/share/faketool_donecleanup.sql	(revision 18942)
+++ /branches/eam_branch_20080719/ippTools/share/faketool_donecleanup.sql	(revision 18942)
@@ -0,0 +1,5 @@
+SELECT
+    fakeRun.*
+FROM fakeRun
+WHERE
+    fakeRun.state = 'cleaned'
Index: /branches/eam_branch_20080719/ippTools/share/faketool_pendingcleanupimfile.sql
===================================================================
--- /branches/eam_branch_20080719/ippTools/share/faketool_pendingcleanupimfile.sql	(revision 18941)
+++ /branches/eam_branch_20080719/ippTools/share/faketool_pendingcleanupimfile.sql	(revision 18942)
@@ -1,15 +1,15 @@
 SELECT
-    chipProcessedImfile.*,
-    chipRun.state,
-    chipRun.workdir,
-    chipRun.label,
-    chipRun.reduction,
-    chipRun.expgroup,
-    chipRun.dvodb,
-    chipRun.tess_id,
-    chipRun.end_stage
-FROM chipRun
-JOIN chipProcessedImfile
-    USING(chip_id)
+    fakeProcessedImfile.*,
+    fakeRun.state,
+    fakeRun.workdir,
+    fakeRun.label,
+    fakeRun.reduction,
+    fakeRun.expgroup,
+    fakeRun.dvodb,
+    fakeRun.tess_id,
+    fakeRun.end_stage
+FROM fakeRun
+JOIN fakeProcessedImfile
+    USING(fake_id)
 WHERE
-    chipRun.state = 'goto_cleaned'
+    fakeRun.state = 'goto_cleaned'
Index: /branches/eam_branch_20080719/ippTools/share/stacktool_donecleanup.sql
===================================================================
--- /branches/eam_branch_20080719/ippTools/share/stacktool_donecleanup.sql	(revision 18942)
+++ /branches/eam_branch_20080719/ippTools/share/stacktool_donecleanup.sql	(revision 18942)
@@ -0,0 +1,5 @@
+SELECT
+    stackRun.*
+FROM stackRun
+WHERE
+    stackRun.state = 'cleaned'
Index: /branches/eam_branch_20080719/ippTools/share/stacktool_pendingcleanupskyfile.sql
===================================================================
--- /branches/eam_branch_20080719/ippTools/share/stacktool_pendingcleanupskyfile.sql	(revision 18941)
+++ /branches/eam_branch_20080719/ippTools/share/stacktool_pendingcleanupskyfile.sql	(revision 18942)
@@ -1,15 +1,11 @@
 SELECT
-    chipProcessedImfile.*,
-    chipRun.state,
-    chipRun.workdir,
-    chipRun.label,
-    chipRun.reduction,
-    chipRun.expgroup,
-    chipRun.dvodb,
-    chipRun.tess_id,
-    chipRun.end_stage
-FROM chipRun
-JOIN chipProcessedImfile
-    USING(chip_id)
+    stackSumSkyfile.*,
+    stackRun.state,
+    stackRun.workdir,
+    stackRun.dvodb,
+    stackRun.tess_id,
+FROM stackRun
+JOIN stackSumSkyfile
+    USING(stack_id)
 WHERE
-    chipRun.state = 'goto_cleaned'
+    stackRun.state = 'goto_cleaned'
Index: /branches/eam_branch_20080719/ippTools/share/warptool_donecleanup.sql
===================================================================
--- /branches/eam_branch_20080719/ippTools/share/warptool_donecleanup.sql	(revision 18942)
+++ /branches/eam_branch_20080719/ippTools/share/warptool_donecleanup.sql	(revision 18942)
@@ -0,0 +1,5 @@
+SELECT
+    warpRun.*
+FROM warpRun
+WHERE
+    warpRun.state = 'cleaned'
Index: /branches/eam_branch_20080719/ippTools/share/warptool_pendingcleanupskyfile.sql
===================================================================
--- /branches/eam_branch_20080719/ippTools/share/warptool_pendingcleanupskyfile.sql	(revision 18942)
+++ /branches/eam_branch_20080719/ippTools/share/warptool_pendingcleanupskyfile.sql	(revision 18942)
@@ -0,0 +1,15 @@
+SELECT
+    warpSkyfile.*,
+    warpRun.state,
+    warpRun.workdir,
+    warpRun.label,
+    warpRun.reduction,
+    warpRun.expgroup,
+    warpRun.dvodb,
+    warpRun.tess_id,
+    warpRun.end_stage
+FROM warpRun
+JOIN warpSkyfile
+    USING(warp_id)
+WHERE
+    warpRun.state = 'goto_cleaned'
Index: anches/eam_branch_20080719/ippTools/share/warptool_pendingcleanupwarp.sql
===================================================================
--- /branches/eam_branch_20080719/ippTools/share/warptool_pendingcleanupwarp.sql	(revision 18941)
+++ 	(revision )
@@ -1,15 +1,0 @@
-SELECT
-    chipProcessedImfile.*,
-    chipRun.state,
-    chipRun.workdir,
-    chipRun.label,
-    chipRun.reduction,
-    chipRun.expgroup,
-    chipRun.dvodb,
-    chipRun.tess_id,
-    chipRun.end_stage
-FROM chipRun
-JOIN chipProcessedImfile
-    USING(chip_id)
-WHERE
-    chipRun.state = 'goto_cleaned'
Index: /branches/eam_branch_20080719/ippTools/src/camtoolConfig.c
===================================================================
--- /branches/eam_branch_20080719/ippTools/src/camtoolConfig.c	(revision 18941)
+++ /branches/eam_branch_20080719/ippTools/src/camtoolConfig.c	(revision 18942)
@@ -274,18 +274,41 @@
     psMetadataAddStr(unblockArgs, PS_LIST_TAIL, "-label",  0,            "name of a label to unmask (required)", NULL);
 
+    // -pendingcleanuprun
+    psMetadata *pendingcleanuprunArgs = psMetadataAlloc();
+    psMetadataAddStr(pendingcleanuprunArgs, PS_LIST_TAIL, "-label",  0,            "list blocks for specified label", NULL);
+    psMetadataAddBool(pendingcleanuprunArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
+    psMetadataAddU64(pendingcleanuprunArgs, PS_LIST_TAIL, "-limit",  0,            "limit result set to N items", 0);
+
+    // -pendingcleanupexp
+    psMetadata *pendingcleanupexpArgs = psMetadataAlloc();
+    psMetadataAddStr(pendingcleanupexpArgs, PS_LIST_TAIL, "-label",  0,            "list blocks for specified label", NULL);
+    psMetadataAddS64(pendingcleanupexpArgs, PS_LIST_TAIL, "-cam_id", 0,            "search by camera ID", 0);
+    psMetadataAddStr(pendingcleanupexpArgs, PS_LIST_TAIL, "-exp_id",                 0,            "search by exp_id", NULL);
+    psMetadataAddBool(pendingcleanupexpArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
+    psMetadataAddU64(pendingcleanupexpArgs, PS_LIST_TAIL, "-limit",  0,            "limit result set to N items", 0);
+
+    // -donecleanup
+    psMetadata *donecleanupArgs = psMetadataAlloc();
+    psMetadataAddStr(donecleanupArgs, PS_LIST_TAIL, "-label",  0,            "list blocks for specified label", NULL);
+    psMetadataAddBool(donecleanupArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
+    psMetadataAddU64(donecleanupArgs, PS_LIST_TAIL, "-limit",  0,            "limit result set to N items", 0);
+
     psMetadata *argSets = psMetadataAlloc();
     psMetadata *modes = psMetadataAlloc();
 
-    PXOPT_ADD_MODE("-definebyquery",       "", CAMTOOL_MODE_DEFINEBYQUERY, definebydefinebyqueryArgs);
-    PXOPT_ADD_MODE("-updaterun",           "", CAMTOOL_MODE_UPDATERUN,      updaterunArgs);
-    PXOPT_ADD_MODE("-pendingexp",          "", CAMTOOL_MODE_PENDINGEXP,    pendingexpArgs);
-    PXOPT_ADD_MODE("-pendingimfile",       "", CAMTOOL_MODE_PENDINGIMFILE, pendingimfileArgs);
-    PXOPT_ADD_MODE("-addprocessedexp",     "", CAMTOOL_MODE_ADDPROCESSEDEXP, addprocessedexpArgs);
-    PXOPT_ADD_MODE("-processedexp",        "", CAMTOOL_MODE_PROCESSEDEXP,  processedexpArgs);
-    PXOPT_ADD_MODE("-revertprocessedexp",  "", CAMTOOL_MODE_REVERTPROCESSEDEXP,  revertprocessedexpArgs);
-    PXOPT_ADD_MODE("-updateprocessedexp",  "", CAMTOOL_MODE_UPDATEPROCESSEDEXP,updateprocessedexpArgs);
-    PXOPT_ADD_MODE("-block",               "", CAMTOOL_MODE_BLOCK,         blockArgs);
-    PXOPT_ADD_MODE("-masked",              "", CAMTOOL_MODE_MASKED,        maskedArgs);
-    PXOPT_ADD_MODE("-unblock",             "", CAMTOOL_MODE_UNBLOCK,       unblockArgs);
+    PXOPT_ADD_MODE("-definebyquery",        "create runs from chip stage",    	    CAMTOOL_MODE_DEFINEBYQUERY, definebydefinebyqueryArgs);
+    PXOPT_ADD_MODE("-updaterun",            "change cam run properties",      	    CAMTOOL_MODE_UPDATERUN,      updaterunArgs);
+    PXOPT_ADD_MODE("-pendingexp",           "show pending exposures",         	    CAMTOOL_MODE_PENDINGEXP,    pendingexpArgs);
+    PXOPT_ADD_MODE("-pendingimfile",        "show pending imfiles",           	    CAMTOOL_MODE_PENDINGIMFILE, pendingimfileArgs);
+    PXOPT_ADD_MODE("-addprocessedexp",      "add a processed exposure",       	    CAMTOOL_MODE_ADDPROCESSEDEXP, addprocessedexpArgs);
+    PXOPT_ADD_MODE("-processedexp",         "show processed exposures",       	    CAMTOOL_MODE_PROCESSEDEXP,  processedexpArgs);
+    PXOPT_ADD_MODE("-revertprocessedexp",   "change procesed exp properties", 	    CAMTOOL_MODE_REVERTPROCESSEDEXP,  revertprocessedexpArgs);
+    PXOPT_ADD_MODE("-updateprocessedexp",   "undo a processed exposure",      	    CAMTOOL_MODE_UPDATEPROCESSEDEXP,updateprocessedexpArgs);
+    PXOPT_ADD_MODE("-block",                "set a label block",    		    CAMTOOL_MODE_BLOCK,         blockArgs);
+    PXOPT_ADD_MODE("-masked",               "show blocked labels",  		    CAMTOOL_MODE_MASKED,        maskedArgs);
+    PXOPT_ADD_MODE("-unblock",              "remove a label block", 		    CAMTOOL_MODE_UNBLOCK,       unblockArgs);
+    PXOPT_ADD_MODE("-pendingcleanuprun",    "show runs that need to be cleaned up", CAMTOOL_MODE_PENDINGCLEANUPRUN, pendingcleanuprunArgs);
+    PXOPT_ADD_MODE("-pendingcleanupexp",    "show exposures for cleanup runs",      CAMTOOL_MODE_PENDINGCLEANUPEXP, pendingcleanupexpArgs);
+    PXOPT_ADD_MODE("-donecleanup",          "show runs that have been cleaned",     CAMTOOL_MODE_DONECLEANUP,       donecleanupArgs);
 
     if (!pxGetOptions(stderr, argc, argv, config, modes, argSets)) {
Index: /branches/eam_branch_20080719/ippTools/src/chiptoolConfig.c
===================================================================
--- /branches/eam_branch_20080719/ippTools/src/chiptoolConfig.c	(revision 18941)
+++ /branches/eam_branch_20080719/ippTools/src/chiptoolConfig.c	(revision 18942)
@@ -279,14 +279,13 @@
     psMetadataAddU64(pendingcleanuprunArgs, PS_LIST_TAIL, "-limit",  0,            "limit result set to N items", 0);
 
-    // -pendingcleanupifmile
+    // -pendingcleanupimfile
     psMetadata *pendingcleanupimfileArgs = psMetadataAlloc();
     psMetadataAddStr(pendingcleanupimfileArgs, PS_LIST_TAIL, "-label",  0,            "list blocks for specified label", NULL);
-    psMetadataAddS64(pendingcleanupimfileArgs, PS_LIST_TAIL, "-chip_id", 0,
-        "search by chip ID", 0);
+    psMetadataAddS64(pendingcleanupimfileArgs, PS_LIST_TAIL, "-chip_id", 0,          "search by chip ID", 0);
     psMetadataAddStr(pendingcleanupimfileArgs, PS_LIST_TAIL, "-exp_id",                 0,            "search by exp_id", NULL);
     psMetadataAddBool(pendingcleanupimfileArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
     psMetadataAddU64(pendingcleanupimfileArgs, PS_LIST_TAIL, "-limit",  0,            "limit result set to N items", 0);
 
-    // -doneclenaup
+    // -donecleanup
     psMetadata *donecleanupArgs = psMetadataAlloc();
     psMetadataAddStr(donecleanupArgs, PS_LIST_TAIL, "-label",  0,            "list blocks for specified label", NULL);
Index: /branches/eam_branch_20080719/ippTools/src/difftoolConfig.c
===================================================================
--- /branches/eam_branch_20080719/ippTools/src/difftoolConfig.c	(revision 18941)
+++ /branches/eam_branch_20080719/ippTools/src/difftoolConfig.c	(revision 18942)
@@ -138,4 +138,23 @@
     psMetadataAddBool(definebyqueryArgs, PS_LIST_TAIL, "-simple", 0, "use the simple output format", false);
 
+    // -pendingcleanuprun
+    psMetadata *pendingcleanuprunArgs = psMetadataAlloc();
+    psMetadataAddStr(pendingcleanuprunArgs, PS_LIST_TAIL, "-label",  0,            "list blocks for specified label", NULL);
+    psMetadataAddBool(pendingcleanuprunArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
+    psMetadataAddU64(pendingcleanuprunArgs, PS_LIST_TAIL, "-limit",  0,            "limit result set to N items", 0);
+
+    // -pendingcleanupskyfile
+    psMetadata *pendingcleanupskyfileArgs = psMetadataAlloc();
+    psMetadataAddStr(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-label",  0,            "list blocks for specified label", NULL);
+    psMetadataAddS64(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-diff_id", 0,          "search by diff ID", 0);
+    psMetadataAddBool(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
+    psMetadataAddU64(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-limit",  0,            "limit result set to N items", 0);
+
+    // -donecleanup
+    psMetadata *donecleanupArgs = psMetadataAlloc();
+    psMetadataAddStr(donecleanupArgs, PS_LIST_TAIL, "-label",  0,            "list blocks for specified label", NULL);
+    psMetadataAddBool(donecleanupArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
+    psMetadataAddU64(donecleanupArgs, PS_LIST_TAIL, "-limit",  0,            "limit result set to N items", 0);
+
     psFree(now);
 
@@ -153,4 +172,7 @@
     PXOPT_ADD_MODE("-definepoprun",     "", DIFFTOOL_MODE_DEFINEPOPRUN,      definepoprunArgs);
     PXOPT_ADD_MODE("-definebyquery",    "", DIFFTOOL_MODE_DEFINEBYQUERY,     definebyqueryArgs);
+    PXOPT_ADD_MODE("-pendingcleanuprun",     "show runs that need to be cleaned up", DIFFTOOL_MODE_PENDINGCLEANUPRUN,    pendingcleanuprunArgs);
+    PXOPT_ADD_MODE("-pendingcleanupskyfile", "show runs that need to be cleaned up", DIFFTOOL_MODE_PENDINGCLEANUPSKYFILE, pendingcleanupskyfileArgs);
+    PXOPT_ADD_MODE("-donecleanup",           "show runs that have been cleaned",     DIFFTOOL_MODE_DONECLEANUP,          donecleanupArgs);
 
     if (!pxGetOptions(stderr, argc, argv, config, modes, argSets)) {
Index: /branches/eam_branch_20080719/ippTools/src/faketoolConfig.c
===================================================================
--- /branches/eam_branch_20080719/ippTools/src/faketoolConfig.c	(revision 18941)
+++ /branches/eam_branch_20080719/ippTools/src/faketoolConfig.c	(revision 18942)
@@ -47,403 +47,248 @@
     psMetadata *queueArgs = psMetadataAlloc();
     // XXX need to allow multiple exp_ids
-    psMetadataAddS64(queueArgs, PS_LIST_TAIL, "-exp_id",  0,
-            "search by exp_id", 0);
-    psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-exp_name",  0,
-            "search by exp_name", NULL);
-    psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-inst",  0,
-            "search for camera", NULL);
-    psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-telescope",  0,
-            "search for telescope", NULL);
-    psMetadataAddTime(queueArgs, PS_LIST_TAIL, "-dateobs_begin", 0,
-            "search for exposures by time (>=)", NULL);
-    psMetadataAddTime(queueArgs, PS_LIST_TAIL, "-dateobs_end", 0,
-            "search for exposures by time (<)", NULL);
-    psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-exp_tag",  0,
-            "search by exp_tag", NULL);
-    psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-exp_type",  0,
-            "search by exp_type", "object");
-    psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-filelevel",  0,
-            "search by filelevel", NULL);
-    psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-reduction",  0,
-            "search by reduction class", NULL);
-    psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-filter",  0,
-            "search for filter", NULL);
-    psMetadataAddF32(queueArgs, PS_LIST_TAIL, "-airmass_min",  0,
-            "define min airmass", NAN);
-    psMetadataAddF32(queueArgs, PS_LIST_TAIL, "-airmass_max",  0,
-            "define max airmass", NAN);
-    psMetadataAddF64(queueArgs, PS_LIST_TAIL, "-ra_min",  0,
-            "define min", NAN);
-    psMetadataAddF64(queueArgs, PS_LIST_TAIL, "-ra_max",  0,
-            "define max", NAN);
-    psMetadataAddF64(queueArgs, PS_LIST_TAIL, "-decl_min",  0,
-            "define min", NAN);
-    psMetadataAddF64(queueArgs, PS_LIST_TAIL, "-decl_max",  0,
-            "define max", NAN);
-    psMetadataAddF32(queueArgs, PS_LIST_TAIL, "-exp_time_min",  0,
-            "define min", NAN);
-    psMetadataAddF32(queueArgs, PS_LIST_TAIL, "-exp_time_max",  0,
-            "define max", NAN);
-    psMetadataAddF32(queueArgs, PS_LIST_TAIL, "-sat_pixel_frac_min",  0,
-            "define max fraction of saturated pixels", NAN);
-    psMetadataAddF32(queueArgs, PS_LIST_TAIL, "-sat_pixel_frac_max",  0,
-            "define min fraction of saturated pixels", NAN);
-    psMetadataAddF64(queueArgs, PS_LIST_TAIL, "-bg_min",  0,
-            "define max", NAN);
-    psMetadataAddF64(queueArgs, PS_LIST_TAIL, "-bg_max",  0,
-            "define max", NAN);
-    psMetadataAddF64(queueArgs, PS_LIST_TAIL, "-bg_stdev_min",  0,
-            "define max", NAN);
-    psMetadataAddF64(queueArgs, PS_LIST_TAIL, "-bg_stdev_max",  0,
-            "define max", NAN);
-    psMetadataAddF64(queueArgs, PS_LIST_TAIL, "-bg_mean_stdev_min",  0,
-            "define max", NAN);
-    psMetadataAddF64(queueArgs, PS_LIST_TAIL, "-bg_mean_stdev_max",  0,
-            "define max", NAN);
-    psMetadataAddF64(queueArgs, PS_LIST_TAIL, "-alt_min",  0,
-            "define min", NAN);
-    psMetadataAddF64(queueArgs, PS_LIST_TAIL, "-alt_max",  0,
-            "define max", NAN);
-    psMetadataAddF64(queueArgs, PS_LIST_TAIL, "-az_min",  0,
-            "define min", NAN);
-    psMetadataAddF64(queueArgs, PS_LIST_TAIL, "-az_max",  0,
-            "define max", NAN);
-    psMetadataAddF64(queueArgs, PS_LIST_TAIL, "-ccd_temp_min",  0,
-            "define min ccd tempature", NAN);
-    psMetadataAddF64(queueArgs, PS_LIST_TAIL, "-ccd_temp_max",  0,
-            "define max ccd tempature", NAN);
-    psMetadataAddF64(queueArgs, PS_LIST_TAIL, "-posang_min",  0,
-            "define min rotator position angle", NAN);
-    psMetadataAddF64(queueArgs, PS_LIST_TAIL, "-posang_max",  0,
-            "define max rotator position angle", NAN);
-    psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-object",  0,
-            "search by exposure object", NULL);
-    psMetadataAddF32(queueArgs, PS_LIST_TAIL, "-solang_min",  0,
-            "define min solar angle", NAN);
-    psMetadataAddF32(queueArgs, PS_LIST_TAIL, "-solang_max",  0,
-            "define max solar angle", NAN);
-    psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-set_workdir",  0,
-            "define workdir", NULL);
-    psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-set_label",  0,
-            "define label", NULL);
-    psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-set_reduction",  0,
-            "define reduction class", NULL);
-    psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-set_expgroup",  0,
-            "define exposure group", NULL);
-    psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-set_dvodb",  0,
-            "define DVO db", NULL);
-    psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-set_tess_id",  0,
-            "define tessellation identifier", NULL);
-    psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-set_end_stage",  0,
-            "define end stage", NULL);
-    psMetadataAddBool(queueArgs, PS_LIST_TAIL, "-pretend",  0,
-            "do not actually modify the database", false);
-    psMetadataAddBool(queueArgs, PS_LIST_TAIL, "-all",  0,
-            "allow everything to be queued without search terms", false);
+    psMetadataAddS64(queueArgs, PS_LIST_TAIL, "-exp_id",  0,            "search by exp_id", 0);
+    psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-exp_name",  0,            "search by exp_name", NULL);
+    psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-inst",  0,            "search for camera", NULL);
+    psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-telescope",  0,            "search for telescope", NULL);
+    psMetadataAddTime(queueArgs, PS_LIST_TAIL, "-dateobs_begin", 0,            "search for exposures by time (>=)", NULL);
+    psMetadataAddTime(queueArgs, PS_LIST_TAIL, "-dateobs_end", 0,            "search for exposures by time (<)", NULL);
+    psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-exp_tag",  0,            "search by exp_tag", NULL);
+    psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-exp_type",  0,            "search by exp_type", "object");
+    psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-filelevel",  0,            "search by filelevel", NULL);
+    psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-reduction",  0,            "search by reduction class", NULL);
+    psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-filter",  0,            "search for filter", NULL);
+    psMetadataAddF32(queueArgs, PS_LIST_TAIL, "-airmass_min",  0,            "define min airmass", NAN);
+    psMetadataAddF32(queueArgs, PS_LIST_TAIL, "-airmass_max",  0,            "define max airmass", NAN);
+    psMetadataAddF64(queueArgs, PS_LIST_TAIL, "-ra_min",  0,            "define min", NAN);
+    psMetadataAddF64(queueArgs, PS_LIST_TAIL, "-ra_max",  0,            "define max", NAN);
+    psMetadataAddF64(queueArgs, PS_LIST_TAIL, "-decl_min",  0,            "define min", NAN);
+    psMetadataAddF64(queueArgs, PS_LIST_TAIL, "-decl_max",  0,            "define max", NAN);
+    psMetadataAddF32(queueArgs, PS_LIST_TAIL, "-exp_time_min",  0,            "define min", NAN);
+    psMetadataAddF32(queueArgs, PS_LIST_TAIL, "-exp_time_max",  0,            "define max", NAN);
+    psMetadataAddF32(queueArgs, PS_LIST_TAIL, "-sat_pixel_frac_min",  0,            "define max fraction of saturated pixels", NAN);
+    psMetadataAddF32(queueArgs, PS_LIST_TAIL, "-sat_pixel_frac_max",  0,            "define min fraction of saturated pixels", NAN);
+    psMetadataAddF64(queueArgs, PS_LIST_TAIL, "-bg_min",  0,            "define max", NAN);
+    psMetadataAddF64(queueArgs, PS_LIST_TAIL, "-bg_max",  0,            "define max", NAN);
+    psMetadataAddF64(queueArgs, PS_LIST_TAIL, "-bg_stdev_min",  0,            "define max", NAN);
+    psMetadataAddF64(queueArgs, PS_LIST_TAIL, "-bg_stdev_max",  0,            "define max", NAN);
+    psMetadataAddF64(queueArgs, PS_LIST_TAIL, "-bg_mean_stdev_min",  0,            "define max", NAN);
+    psMetadataAddF64(queueArgs, PS_LIST_TAIL, "-bg_mean_stdev_max",  0,            "define max", NAN);
+    psMetadataAddF64(queueArgs, PS_LIST_TAIL, "-alt_min",  0,            "define min", NAN);
+    psMetadataAddF64(queueArgs, PS_LIST_TAIL, "-alt_max",  0,            "define max", NAN);
+    psMetadataAddF64(queueArgs, PS_LIST_TAIL, "-az_min",  0,            "define min", NAN);
+    psMetadataAddF64(queueArgs, PS_LIST_TAIL, "-az_max",  0,            "define max", NAN);
+    psMetadataAddF64(queueArgs, PS_LIST_TAIL, "-ccd_temp_min",  0,            "define min ccd tempature", NAN);
+    psMetadataAddF64(queueArgs, PS_LIST_TAIL, "-ccd_temp_max",  0,            "define max ccd tempature", NAN);
+    psMetadataAddF64(queueArgs, PS_LIST_TAIL, "-posang_min",  0,            "define min rotator position angle", NAN);
+    psMetadataAddF64(queueArgs, PS_LIST_TAIL, "-posang_max",  0,            "define max rotator position angle", NAN);
+    psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-object",  0,            "search by exposure object", NULL);
+    psMetadataAddF32(queueArgs, PS_LIST_TAIL, "-solang_min",  0,            "define min solar angle", NAN);
+    psMetadataAddF32(queueArgs, PS_LIST_TAIL, "-solang_max",  0,            "define max solar angle", NAN);
+    psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-set_workdir",  0,            "define workdir", NULL);
+    psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-set_label",  0,            "define label", NULL);
+    psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-set_reduction",  0,            "define reduction class", NULL);
+    psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-set_expgroup",  0,            "define exposure group", NULL);
+    psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-set_dvodb",  0,            "define DVO db", NULL);
+    psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-set_tess_id",  0,            "define tessellation identifier", NULL);
+    psMetadataAddStr(queueArgs, PS_LIST_TAIL, "-set_end_stage",  0,            "define end stage", NULL);
+    psMetadataAddBool(queueArgs, PS_LIST_TAIL, "-pretend",  0,            "do not actually modify the database", false);
+    psMetadataAddBool(queueArgs, PS_LIST_TAIL, "-all",  0,            "allow everything to be queued without search terms", false);
 
 
     // -updaterun
     psMetadata *updaterunArgs = psMetadataAlloc();
-    psMetadataAddS64(updaterunArgs, PS_LIST_TAIL, "-fake_id", 0,
-            "search by fake ID", 0);
-    psMetadataAddS64(updaterunArgs, PS_LIST_TAIL, "-exp_id",  0,
-            "search by exp_id", 0);
-    psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-exp_name",  0,
-            "search by exp_name", NULL);
-    psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-inst",  0,
-            "search for camera", NULL);
-    psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-telescope",  0,
-            "search for telescope", NULL);
-    psMetadataAddTime(updaterunArgs, PS_LIST_TAIL, "-dateobs_begin", 0,
-            "search for exposures by time (>=)", NULL);
-    psMetadataAddTime(updaterunArgs, PS_LIST_TAIL, "-dateobs_end", 0,
-            "search for exposures by time (<)", NULL);
-    psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-exp_tag",  0,
-            "search by exp_tag", NULL);
-    psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-exp_type",  0,
-            "search by exp_type", "object");
-    psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-filelevel",  0,
-            "search by filelevel", NULL);
-    psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-reduction",  0,
-            "search by reduction class", NULL);
-    psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-filter",  0,
-            "search for filter", NULL);
-    psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-airmass_min",  0,
-            "define min airmass", NAN);
-    psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-airmass_max",  0,
-            "define max airmass", NAN);
-    psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-ra_min",  0,
-            "define min", NAN);
-    psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-ra_max",  0,
-            "define max", NAN);
-    psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-decl_min",  0,
-            "define min", NAN);
-    psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-decl_max",  0,
-            "define max", NAN);
-    psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-exp_time_min",  0,
-            "define min", NAN);
-    psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-exp_time_max",  0,
-            "define max", NAN);
-    psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-sat_pixel_frac_min",  0,
-            "define max fraction of saturated pixels", NAN);
-    psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-sat_pixel_frac_max",  0,
-            "define min fraction of saturated pixels", NAN);
-    psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-bg_min",  0,
-            "define max", NAN);
-    psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-bg_max",  0,
-            "define max", NAN);
-    psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-bg_stdev_min",  0,
-            "define max", NAN);
-    psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-bg_stdev_max",  0,
-            "define max", NAN);
-    psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-bg_mean_stdev_min",  0,
-            "define max", NAN);
-    psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-bg_mean_stdev_max",  0,
-            "define max", NAN);
-    psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-alt_min",  0,
-            "define min", NAN);
-    psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-alt_max",  0,
-            "define max", NAN);
-    psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-az_min",  0,
-            "define min", NAN);
-    psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-az_max",  0,
-            "define max", NAN);
-    psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-ccd_temp_min",  0,
-            "define min ccd tempature", NAN);
-    psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-ccd_temp_max",  0,
-            "define max ccd tempature", NAN);
-    psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-posang_min",  0,
-            "define min rotator position angle", NAN);
-    psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-posang_max",  0,
-            "define max rotator position angle", NAN);
-    psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-object",  0,
-            "search by exposure object", NULL);
-    psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-solang_min",  0,
-            "define min solar angle", NAN);
-    psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-solang_max",  0,
-            "define max solar angle", NAN);
-
-    psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-state", 0,
-            "set state", NULL);
-    psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-label", 0,
-            "set label", NULL);
-    psMetadataAddBool(updaterunArgs, PS_LIST_TAIL, "-all",  0,
-            "allow everything to be queued without search terms", false);
+    psMetadataAddS64(updaterunArgs, PS_LIST_TAIL, "-fake_id", 0,            "search by fake ID", 0);
+    psMetadataAddS64(updaterunArgs, PS_LIST_TAIL, "-exp_id",  0,            "search by exp_id", 0);
+    psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-exp_name",  0,            "search by exp_name", NULL);
+    psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-inst",  0,            "search for camera", NULL);
+    psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-telescope",  0,            "search for telescope", NULL);
+    psMetadataAddTime(updaterunArgs, PS_LIST_TAIL, "-dateobs_begin", 0,            "search for exposures by time (>=)", NULL);
+    psMetadataAddTime(updaterunArgs, PS_LIST_TAIL, "-dateobs_end", 0,            "search for exposures by time (<)", NULL);
+    psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-exp_tag",  0,            "search by exp_tag", NULL);
+    psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-exp_type",  0,            "search by exp_type", "object");
+    psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-filelevel",  0,            "search by filelevel", NULL);
+    psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-reduction",  0,            "search by reduction class", NULL);
+    psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-filter",  0,            "search for filter", NULL);
+    psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-airmass_min",  0,            "define min airmass", NAN);
+    psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-airmass_max",  0,            "define max airmass", NAN);
+    psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-ra_min",  0,            "define min", NAN);
+    psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-ra_max",  0,            "define max", NAN);
+    psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-decl_min",  0,            "define min", NAN);
+    psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-decl_max",  0,            "define max", NAN);
+    psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-exp_time_min",  0,            "define min", NAN);
+    psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-exp_time_max",  0,            "define max", NAN);
+    psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-sat_pixel_frac_min",  0,            "define max fraction of saturated pixels", NAN);
+    psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-sat_pixel_frac_max",  0,            "define min fraction of saturated pixels", NAN);
+    psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-bg_min",  0,            "define max", NAN);
+    psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-bg_max",  0,            "define max", NAN);
+    psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-bg_stdev_min",  0,            "define max", NAN);
+    psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-bg_stdev_max",  0,            "define max", NAN);
+    psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-bg_mean_stdev_min",  0,            "define max", NAN);
+    psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-bg_mean_stdev_max",  0,            "define max", NAN);
+    psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-alt_min",  0,            "define min", NAN);
+    psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-alt_max",  0,            "define max", NAN);
+    psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-az_min",  0,            "define min", NAN);
+    psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-az_max",  0,            "define max", NAN);
+    psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-ccd_temp_min",  0,            "define min ccd tempature", NAN);
+    psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-ccd_temp_max",  0,            "define max ccd tempature", NAN);
+    psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-posang_min",  0,            "define min rotator position angle", NAN);
+    psMetadataAddF64(updaterunArgs, PS_LIST_TAIL, "-posang_max",  0,            "define max rotator position angle", NAN);
+    psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-object",  0,            "search by exposure object", NULL);
+    psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-solang_min",  0,            "define min solar angle", NAN);
+    psMetadataAddF32(updaterunArgs, PS_LIST_TAIL, "-solang_max",  0,            "define max solar angle", NAN);
+
+    psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-state", 0,            "set state", NULL);
+    psMetadataAddStr(updaterunArgs, PS_LIST_TAIL, "-label", 0,            "set label", NULL);
+    psMetadataAddBool(updaterunArgs, PS_LIST_TAIL, "-all",  0,            "allow everything to be queued without search terms", false);
 
     // -pendingexp
     psMetadata *pendingexpArgs = psMetadataAlloc();
-    psMetadataAddS64(pendingexpArgs, PS_LIST_TAIL, "-fake_id", 0,
-            "search by fake ID", 0);
-    psMetadataAddS64(pendingexpArgs, PS_LIST_TAIL, "-cam_id", 0,
-            "search by camtool ID", 0);
-    psMetadataAddS64(pendingexpArgs, PS_LIST_TAIL, "-chip_id", 0,
-            "search by chiptool ID", 0);
-    psMetadataAddU64(pendingexpArgs, PS_LIST_TAIL, "-limit",  0,
-            "limit result set to N items", 0);
-    psMetadataAddBool(pendingexpArgs, PS_LIST_TAIL, "-simple", 0,
-            "use the simple output format", false);
+    psMetadataAddS64(pendingexpArgs, PS_LIST_TAIL, "-fake_id", 0,            "search by fake ID", 0);
+    psMetadataAddS64(pendingexpArgs, PS_LIST_TAIL, "-cam_id", 0,            "search by camtool ID", 0);
+    psMetadataAddS64(pendingexpArgs, PS_LIST_TAIL, "-chip_id", 0,            "search by chiptool ID", 0);
+    psMetadataAddU64(pendingexpArgs, PS_LIST_TAIL, "-limit",  0,            "limit result set to N items", 0);
+    psMetadataAddBool(pendingexpArgs, PS_LIST_TAIL, "-simple", 0,            "use the simple output format", false);
 
     // -pendingimfile
     psMetadata *pendingimfileArgs = psMetadataAlloc();
-    psMetadataAddS64(pendingimfileArgs, PS_LIST_TAIL, "-fake_id",  0,
-            "search by fake ID", 0);
-    psMetadataAddS64(pendingimfileArgs, PS_LIST_TAIL, "-exp_id",  0,
-            "search by exposure ID", 0);
-    psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-class_id",  0,
-            "search by class ID", NULL);
-    psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-inst",  0,
-            "search by camera of interest", NULL);
-    psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-filter",  0,
-            "search by filter of interest", NULL);
-    psMetadataAddU64(pendingimfileArgs, PS_LIST_TAIL, "-limit",  0,
-            "limit result set to N items", 0);
-    psMetadataAddBool(pendingimfileArgs, PS_LIST_TAIL, "-simple",  0,
-            "use the simple output format", false);
+    psMetadataAddS64(pendingimfileArgs, PS_LIST_TAIL, "-fake_id",  0,            "search by fake ID", 0);
+    psMetadataAddS64(pendingimfileArgs, PS_LIST_TAIL, "-exp_id",  0,            "search by exposure ID", 0);
+    psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-class_id",  0,            "search by class ID", NULL);
+    psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-inst",  0,            "search by camera of interest", NULL);
+    psMetadataAddStr(pendingimfileArgs, PS_LIST_TAIL, "-filter",  0,            "search by filter of interest", NULL);
+    psMetadataAddU64(pendingimfileArgs, PS_LIST_TAIL, "-limit",  0,            "limit result set to N items", 0);
+    psMetadataAddBool(pendingimfileArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
 
     // -addprocessedimfile
     psMetadata *addprocessedimfileArgs = psMetadataAlloc();
-    psMetadataAddS64(addprocessedimfileArgs, PS_LIST_TAIL, "-fake_id",  0,
-            "define fake ID (required)", 0);
-    psMetadataAddS64(addprocessedimfileArgs, PS_LIST_TAIL, "-exp_id",  0,
-            "define exposure ID (required)", 0);
-    psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-class_id",  0,
-            "define class ID (required)", NULL);
-    psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-uri",  0,
-            "define URL", NULL);
-    psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-dtime_fake",  0,
-            "define elapsed time for detrend (seconds)", NAN);
-    psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-hostname",  0,
-            "define hostname", NULL);
-    psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-path_base",  0,
-            "define base output location", NULL);
-    psMetadataAddS16(addprocessedimfileArgs, PS_LIST_TAIL, "-code",  0,
-            "set fault code", 0);
+    psMetadataAddS64(addprocessedimfileArgs, PS_LIST_TAIL, "-fake_id",  0,            "define fake ID (required)", 0);
+    psMetadataAddS64(addprocessedimfileArgs, PS_LIST_TAIL, "-exp_id",  0,            "define exposure ID (required)", 0);
+    psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-class_id",  0,            "define class ID (required)", NULL);
+    psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-uri",  0,            "define URL", NULL);
+    psMetadataAddF32(addprocessedimfileArgs, PS_LIST_TAIL, "-dtime_fake",  0,            "define elapsed time for detrend (seconds)", NAN);
+    psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-hostname",  0,            "define hostname", NULL);
+    psMetadataAddStr(addprocessedimfileArgs, PS_LIST_TAIL, "-path_base",  0,            "define base output location", NULL);
+    psMetadataAddS16(addprocessedimfileArgs, PS_LIST_TAIL, "-code",  0,            "set fault code", 0);
 
     // -processedimfile
     psMetadata *processedimfileArgs = psMetadataAlloc();
-    psMetadataAddS64(processedimfileArgs, PS_LIST_TAIL, "-fake_id",  0,
-            "define fake ID", 0);
-    psMetadataAddS64(processedimfileArgs, PS_LIST_TAIL, "-exp_id",  0,
-            "define exposure ID", 0);
-    psMetadataAddStr(processedimfileArgs, PS_LIST_TAIL, "-class_id",  0,
-            "define class ID", NULL);
-    psMetadataAddStr(processedimfileArgs, PS_LIST_TAIL, "-inst",  0,
-            "define camera of interest", NULL);
-    psMetadataAddStr(processedimfileArgs, PS_LIST_TAIL, "-filter",  0,
-            "define filter of interest", NULL);
-    psMetadataAddU64(processedimfileArgs, PS_LIST_TAIL, "-limit",  0,
-            "limit result set to N items", 0);
-    psMetadataAddBool(processedimfileArgs, PS_LIST_TAIL, "-faulted",  0,
-            "only return imfiles with a fault status set", false);
-    psMetadataAddBool(processedimfileArgs, PS_LIST_TAIL, "-simple",  0,
-            "use the simple output format", false);
+    psMetadataAddS64(processedimfileArgs, PS_LIST_TAIL, "-fake_id",  0,            "define fake ID", 0);
+    psMetadataAddS64(processedimfileArgs, PS_LIST_TAIL, "-exp_id",  0,            "define exposure ID", 0);
+    psMetadataAddStr(processedimfileArgs, PS_LIST_TAIL, "-class_id",  0,            "define class ID", NULL);
+    psMetadataAddStr(processedimfileArgs, PS_LIST_TAIL, "-inst",  0,            "define camera of interest", NULL);
+    psMetadataAddStr(processedimfileArgs, PS_LIST_TAIL, "-filter",  0,            "define filter of interest", NULL);
+    psMetadataAddU64(processedimfileArgs, PS_LIST_TAIL, "-limit",  0,            "limit result set to N items", 0);
+    psMetadataAddBool(processedimfileArgs, PS_LIST_TAIL, "-faulted",  0,            "only return imfiles with a fault status set", false);
+    psMetadataAddBool(processedimfileArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
 
     // -updateprocessedimfile
     psMetadata *updateprocessedimfileArgs = psMetadataAlloc();
-    psMetadataAddS64(updateprocessedimfileArgs, PS_LIST_TAIL, "-fake_id",  0,
-            "search by fake ID", 0);
-    psMetadataAddS64(updateprocessedimfileArgs, PS_LIST_TAIL, "-exp_id",  0,
-            "search by exposure ID", 0);
-    psMetadataAddStr(updateprocessedimfileArgs, PS_LIST_TAIL, "-class_id",  0,
-            "search by class ID", NULL);
-    psMetadataAddS16(updateprocessedimfileArgs, PS_LIST_TAIL, "-code",  0,
-            "set fault code (required)", 0);
+    psMetadataAddS64(updateprocessedimfileArgs, PS_LIST_TAIL, "-fake_id",  0,            "search by fake ID", 0);
+    psMetadataAddS64(updateprocessedimfileArgs, PS_LIST_TAIL, "-exp_id",  0,            "search by exposure ID", 0);
+    psMetadataAddStr(updateprocessedimfileArgs, PS_LIST_TAIL, "-class_id",  0,            "search by class ID", NULL);
+    psMetadataAddS16(updateprocessedimfileArgs, PS_LIST_TAIL, "-code",  0,            "set fault code (required)", 0);
 
     // -revertprocessedimfile
     psMetadata *revertprocessedimfileArgs = psMetadataAlloc();
-    psMetadataAddS64(revertprocessedimfileArgs, PS_LIST_TAIL, "-fake_id", 0,
-            "search by fake ID", 0);
-    psMetadataAddS64(revertprocessedimfileArgs, PS_LIST_TAIL, "-exp_id",  0,
-            "search by exp_id", 0);
-    psMetadataAddStr(revertprocessedimfileArgs, PS_LIST_TAIL, "-exp_name",  0,
-            "search by exp_name", NULL);
-    psMetadataAddStr(revertprocessedimfileArgs, PS_LIST_TAIL, "-inst",  0,
-            "search for camera", NULL);
-    psMetadataAddStr(revertprocessedimfileArgs, PS_LIST_TAIL, "-telescope",  0,
-            "search for telescope", NULL);
-    psMetadataAddTime(revertprocessedimfileArgs, PS_LIST_TAIL, "-dateobs_begin", 0,
-            "search for exposures by time (>=)", NULL);
-    psMetadataAddTime(revertprocessedimfileArgs, PS_LIST_TAIL, "-dateobs_end", 0,
-            "search for exposures by time (<)", NULL);
-    psMetadataAddStr(revertprocessedimfileArgs, PS_LIST_TAIL, "-exp_tag",  0,
-            "search by exp_tag", NULL);
-    psMetadataAddStr(revertprocessedimfileArgs, PS_LIST_TAIL, "-exp_type",  0,
-            "search by exp_type", "object");
-    psMetadataAddStr(revertprocessedimfileArgs, PS_LIST_TAIL, "-filelevel",  0,
-            "search by filelevel", NULL);
-    psMetadataAddStr(revertprocessedimfileArgs, PS_LIST_TAIL, "-reduction",  0,
-            "search by reduction class", NULL);
-    psMetadataAddStr(revertprocessedimfileArgs, PS_LIST_TAIL, "-filter",  0,
-            "search for filter", NULL);
-    psMetadataAddF32(revertprocessedimfileArgs, PS_LIST_TAIL, "-airmass_min",  0,
-            "define min airmass", NAN);
-    psMetadataAddF32(revertprocessedimfileArgs, PS_LIST_TAIL, "-airmass_max",  0,
-            "define max airmass", NAN);
-    psMetadataAddF64(revertprocessedimfileArgs, PS_LIST_TAIL, "-ra_min",  0,
-            "define min", NAN);
-    psMetadataAddF64(revertprocessedimfileArgs, PS_LIST_TAIL, "-ra_max",  0,
-            "define max", NAN);
-    psMetadataAddF64(revertprocessedimfileArgs, PS_LIST_TAIL, "-decl_min",  0,
-            "define min", NAN);
-    psMetadataAddF64(revertprocessedimfileArgs, PS_LIST_TAIL, "-decl_max",  0,
-            "define max", NAN);
-    psMetadataAddF32(revertprocessedimfileArgs, PS_LIST_TAIL, "-exp_time_min",  0,
-            "define min", NAN);
-    psMetadataAddF32(revertprocessedimfileArgs, PS_LIST_TAIL, "-exp_time_max",  0,
-            "define max", NAN);
-    psMetadataAddF32(revertprocessedimfileArgs, PS_LIST_TAIL, "-sat_pixel_frac_min",  0,
-            "define max fraction of saturated pixels", NAN);
-    psMetadataAddF32(revertprocessedimfileArgs, PS_LIST_TAIL, "-sat_pixel_frac_max",  0,
-            "define min fraction of saturated pixels", NAN);
-    psMetadataAddF64(revertprocessedimfileArgs, PS_LIST_TAIL, "-bg_min",  0,
-            "define max", NAN);
-    psMetadataAddF64(revertprocessedimfileArgs, PS_LIST_TAIL, "-bg_max",  0,
-            "define max", NAN);
-    psMetadataAddF64(revertprocessedimfileArgs, PS_LIST_TAIL, "-bg_stdev_min",  0,
-            "define max", NAN);
-    psMetadataAddF64(revertprocessedimfileArgs, PS_LIST_TAIL, "-bg_stdev_max",  0,
-            "define max", NAN);
-    psMetadataAddF64(revertprocessedimfileArgs, PS_LIST_TAIL, "-bg_mean_stdev_min",  0,
-            "define max", NAN);
-    psMetadataAddF64(revertprocessedimfileArgs, PS_LIST_TAIL, "-bg_mean_stdev_max",  0,
-            "define max", NAN);
-    psMetadataAddF64(revertprocessedimfileArgs, PS_LIST_TAIL, "-alt_min",  0,
-            "define min", NAN);
-    psMetadataAddF64(revertprocessedimfileArgs, PS_LIST_TAIL, "-alt_max",  0,
-            "define max", NAN);
-    psMetadataAddF64(revertprocessedimfileArgs, PS_LIST_TAIL, "-az_min",  0,
-            "define min", NAN);
-    psMetadataAddF64(revertprocessedimfileArgs, PS_LIST_TAIL, "-az_max",  0,
-            "define max", NAN);
-    psMetadataAddF64(revertprocessedimfileArgs, PS_LIST_TAIL, "-ccd_temp_min",0,
-            "define min ccd tempature", NAN);
-    psMetadataAddF64(revertprocessedimfileArgs, PS_LIST_TAIL, "-ccd_temp_max",0,
-            "define max ccd tempature", NAN);
-    psMetadataAddF64(revertprocessedimfileArgs, PS_LIST_TAIL, "-posang_min",  0,
-            "define min rotator position angle", NAN);
-    psMetadataAddF64(revertprocessedimfileArgs, PS_LIST_TAIL, "-posang_max",  0,
-            "define max rotator position angle", NAN);
-    psMetadataAddStr(revertprocessedimfileArgs, PS_LIST_TAIL, "-object",  0,
-            "search by exposure object", NULL);
-    psMetadataAddF32(revertprocessedimfileArgs, PS_LIST_TAIL, "-solang_min",  0,
-            "define min solar angle", NAN);
-    psMetadataAddF32(revertprocessedimfileArgs, PS_LIST_TAIL, "-solang_max",  0,
-            "define max solar angle", NAN);
-
-    psMetadataAddBool(revertprocessedimfileArgs, PS_LIST_TAIL, "-all",  0,
-            "allow everything to be queued without search terms", false);
-    psMetadataAddS16(revertprocessedimfileArgs, PS_LIST_TAIL, "-code",  0,
-            "search by fault code", 0);
+    psMetadataAddS64(revertprocessedimfileArgs, PS_LIST_TAIL, "-fake_id", 0,            "search by fake ID", 0);
+    psMetadataAddS64(revertprocessedimfileArgs, PS_LIST_TAIL, "-exp_id",  0,            "search by exp_id", 0);
+    psMetadataAddStr(revertprocessedimfileArgs, PS_LIST_TAIL, "-exp_name",  0,            "search by exp_name", NULL);
+    psMetadataAddStr(revertprocessedimfileArgs, PS_LIST_TAIL, "-inst",  0,            "search for camera", NULL);
+    psMetadataAddStr(revertprocessedimfileArgs, PS_LIST_TAIL, "-telescope",  0,            "search for telescope", NULL);
+    psMetadataAddTime(revertprocessedimfileArgs, PS_LIST_TAIL, "-dateobs_begin", 0,            "search for exposures by time (>=)", NULL);
+    psMetadataAddTime(revertprocessedimfileArgs, PS_LIST_TAIL, "-dateobs_end", 0,            "search for exposures by time (<)", NULL);
+    psMetadataAddStr(revertprocessedimfileArgs, PS_LIST_TAIL, "-exp_tag",  0,            "search by exp_tag", NULL);
+    psMetadataAddStr(revertprocessedimfileArgs, PS_LIST_TAIL, "-exp_type",  0,            "search by exp_type", "object");
+    psMetadataAddStr(revertprocessedimfileArgs, PS_LIST_TAIL, "-filelevel",  0,            "search by filelevel", NULL);
+    psMetadataAddStr(revertprocessedimfileArgs, PS_LIST_TAIL, "-reduction",  0,            "search by reduction class", NULL);
+    psMetadataAddStr(revertprocessedimfileArgs, PS_LIST_TAIL, "-filter",  0,            "search for filter", NULL);
+    psMetadataAddF32(revertprocessedimfileArgs, PS_LIST_TAIL, "-airmass_min",  0,            "define min airmass", NAN);
+    psMetadataAddF32(revertprocessedimfileArgs, PS_LIST_TAIL, "-airmass_max",  0,            "define max airmass", NAN);
+    psMetadataAddF64(revertprocessedimfileArgs, PS_LIST_TAIL, "-ra_min",  0,            "define min", NAN);
+    psMetadataAddF64(revertprocessedimfileArgs, PS_LIST_TAIL, "-ra_max",  0,            "define max", NAN);
+    psMetadataAddF64(revertprocessedimfileArgs, PS_LIST_TAIL, "-decl_min",  0,            "define min", NAN);
+    psMetadataAddF64(revertprocessedimfileArgs, PS_LIST_TAIL, "-decl_max",  0,            "define max", NAN);
+    psMetadataAddF32(revertprocessedimfileArgs, PS_LIST_TAIL, "-exp_time_min",  0,            "define min", NAN);
+    psMetadataAddF32(revertprocessedimfileArgs, PS_LIST_TAIL, "-exp_time_max",  0,            "define max", NAN);
+    psMetadataAddF32(revertprocessedimfileArgs, PS_LIST_TAIL, "-sat_pixel_frac_min",  0,            "define max fraction of saturated pixels", NAN);
+    psMetadataAddF32(revertprocessedimfileArgs, PS_LIST_TAIL, "-sat_pixel_frac_max",  0,            "define min fraction of saturated pixels", NAN);
+    psMetadataAddF64(revertprocessedimfileArgs, PS_LIST_TAIL, "-bg_min",  0,            "define max", NAN);
+    psMetadataAddF64(revertprocessedimfileArgs, PS_LIST_TAIL, "-bg_max",  0,            "define max", NAN);
+    psMetadataAddF64(revertprocessedimfileArgs, PS_LIST_TAIL, "-bg_stdev_min",  0,            "define max", NAN);
+    psMetadataAddF64(revertprocessedimfileArgs, PS_LIST_TAIL, "-bg_stdev_max",  0,            "define max", NAN);
+    psMetadataAddF64(revertprocessedimfileArgs, PS_LIST_TAIL, "-bg_mean_stdev_min",  0,            "define max", NAN);
+    psMetadataAddF64(revertprocessedimfileArgs, PS_LIST_TAIL, "-bg_mean_stdev_max",  0,            "define max", NAN);
+    psMetadataAddF64(revertprocessedimfileArgs, PS_LIST_TAIL, "-alt_min",  0,            "define min", NAN);
+    psMetadataAddF64(revertprocessedimfileArgs, PS_LIST_TAIL, "-alt_max",  0,            "define max", NAN);
+    psMetadataAddF64(revertprocessedimfileArgs, PS_LIST_TAIL, "-az_min",  0,            "define min", NAN);
+    psMetadataAddF64(revertprocessedimfileArgs, PS_LIST_TAIL, "-az_max",  0,            "define max", NAN);
+    psMetadataAddF64(revertprocessedimfileArgs, PS_LIST_TAIL, "-ccd_temp_min",0,            "define min ccd tempature", NAN);
+    psMetadataAddF64(revertprocessedimfileArgs, PS_LIST_TAIL, "-ccd_temp_max",0,            "define max ccd tempature", NAN);
+    psMetadataAddF64(revertprocessedimfileArgs, PS_LIST_TAIL, "-posang_min",  0,            "define min rotator position angle", NAN);
+    psMetadataAddF64(revertprocessedimfileArgs, PS_LIST_TAIL, "-posang_max",  0,            "define max rotator position angle", NAN);
+    psMetadataAddStr(revertprocessedimfileArgs, PS_LIST_TAIL, "-object",  0,            "search by exposure object", NULL);
+    psMetadataAddF32(revertprocessedimfileArgs, PS_LIST_TAIL, "-solang_min",  0,            "define min solar angle", NAN);
+    psMetadataAddF32(revertprocessedimfileArgs, PS_LIST_TAIL, "-solang_max",  0,            "define max solar angle", NAN);
+
+    psMetadataAddBool(revertprocessedimfileArgs, PS_LIST_TAIL, "-all",  0,            "allow everything to be queued without search terms", false);
+    psMetadataAddS16(revertprocessedimfileArgs, PS_LIST_TAIL, "-code",  0,            "search by fault code", 0);
 
     // -block
     psMetadata *blockArgs = psMetadataAlloc();
-    psMetadataAddStr(blockArgs, PS_LIST_TAIL, "-label",  0,
-            "name of a label to mask out (required)", NULL);
+    psMetadataAddStr(blockArgs, PS_LIST_TAIL, "-label",  0,            "name of a label to mask out (required)", NULL);
 
     // -masked
     psMetadata *maskedArgs = psMetadataAlloc();
-    psMetadataAddStr(maskedArgs, PS_LIST_TAIL, "-label",  0,
-            "list blocks for specified label", NULL);
-    psMetadataAddBool(maskedArgs, PS_LIST_TAIL, "-simple",  0,
-            "use the simple output format", false);
-    psMetadataAddU64(maskedArgs, PS_LIST_TAIL, "-limit",  0,
-            "limit result set to N items", 0);
+    psMetadataAddStr(maskedArgs, PS_LIST_TAIL, "-label",  0,            "list blocks for specified label", NULL);
+    psMetadataAddBool(maskedArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
+    psMetadataAddU64(maskedArgs, PS_LIST_TAIL, "-limit",  0,            "limit result set to N items", 0);
 
     // -unmasked
     psMetadata *unmaskedArgs = psMetadataAlloc();
-    psMetadataAddStr(unmaskedArgs, PS_LIST_TAIL, "-label",  0,
-            "restrict to specified label", NULL);
-    psMetadataAddBool(unmaskedArgs, PS_LIST_TAIL, "-simple",  0,
-            "use the simple output format", false);
-    psMetadataAddU64(unmaskedArgs, PS_LIST_TAIL, "-limit",  0,
-            "limit result set to N items", 0);
+    psMetadataAddStr(unmaskedArgs, PS_LIST_TAIL, "-label",  0,            "restrict to specified label", NULL);
+    psMetadataAddBool(unmaskedArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
+    psMetadataAddU64(unmaskedArgs, PS_LIST_TAIL, "-limit",  0,            "limit result set to N items", 0);
 
     // -unblock
     psMetadata *unblockArgs = psMetadataAlloc();
-    psMetadataAddStr(unblockArgs, PS_LIST_TAIL, "-label",  0,
-            "name of a label to unmask (required)", NULL);
+    psMetadataAddStr(unblockArgs, PS_LIST_TAIL, "-label",  0,            "name of a label to unmask (required)", NULL);
+
+    // -pendingcleanuprun
+    psMetadata *pendingcleanuprunArgs = psMetadataAlloc();
+    psMetadataAddStr(pendingcleanuprunArgs,  PS_LIST_TAIL, "-label",  0,            "list blocks for specified label", NULL);
+    psMetadataAddBool(pendingcleanuprunArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
+    psMetadataAddU64(pendingcleanuprunArgs,  PS_LIST_TAIL, "-limit",  0,            "limit result set to N items", 0);
+
+    // -pendingcleanupimfile
+    psMetadata *pendingcleanupimfileArgs = psMetadataAlloc();
+    psMetadataAddStr(pendingcleanupimfileArgs, PS_LIST_TAIL, "-label",  0,            "list blocks for specified label", NULL);
+    psMetadataAddS64(pendingcleanupimfileArgs, PS_LIST_TAIL, "-fake_id", 0,          "search by chip ID", 0);
+    psMetadataAddBool(pendingcleanupimfileArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
+    psMetadataAddU64(pendingcleanupimfileArgs, PS_LIST_TAIL, "-limit",  0,            "limit result set to N items", 0);
+
+    // -donecleanup
+    psMetadata *donecleanupArgs = psMetadataAlloc();
+    psMetadataAddStr(donecleanupArgs, PS_LIST_TAIL, "-label",  0,            "list blocks for specified label", NULL);
+    psMetadataAddBool(donecleanupArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
+    psMetadataAddU64(donecleanupArgs, PS_LIST_TAIL, "-limit",  0,            "limit result set to N items", 0);
 
     psMetadata *argSets = psMetadataAlloc();
     psMetadata *modes = psMetadataAlloc();
 
-    PXOPT_ADD_MODE("-definebyquery",                 "create runs from raw exposures",
-        FAKETOOL_MODE_DEFINEBYQUERY,                    queueArgs);
-    PXOPT_ADD_MODE("-updaterun",             "change fake run properties",
-        FAKETOOL_MODE_UPDATERUN,                updaterunArgs);
-    PXOPT_ADD_MODE("-pendingexp",           "show pending exposures",
-        FAKETOOL_MODE_PENDINGEXP,               pendingexpArgs);
-    PXOPT_ADD_MODE("-pendingimfile",         "show pending imfiles",
-        FAKETOOL_MODE_PENDINGIMFILE,            pendingimfileArgs);
-    PXOPT_ADD_MODE("-addprocessedimfile",    "add a processed imfile",
-        FAKETOOL_MODE_ADDPROCESSEDIMFILE,       addprocessedimfileArgs);
-    PXOPT_ADD_MODE("-processedimfile",       "show processed imfiles",
-        FAKETOOL_MODE_PROCESSEDIMFILE,          processedimfileArgs);
-    PXOPT_ADD_MODE("-updateprocessedimfile","change procesed imfile properties",        FAKETOOL_MODE_UPDATEPROCESSEDIMFILE,    updateprocessedimfileArgs);
-    PXOPT_ADD_MODE("-revertprocessedimfile", "undo a processed imfile",
-        FAKETOOL_MODE_REVERTPROCESSEDIMFILE,    revertprocessedimfileArgs);
-    PXOPT_ADD_MODE("-block",                 "set a label block", FAKETOOL_MODE_BLOCK,          blockArgs);
-    PXOPT_ADD_MODE("-masked",                "show blocked labels", FAKETOOL_MODE_MASKED,         maskedArgs);
-    PXOPT_ADD_MODE("-unmasked",              "", FAKETOOL_MODE_UNMASKED,       unmaskedArgs);
-    PXOPT_ADD_MODE("-unblock",               "remove a label block", FAKETOOL_MODE_UNBLOCK,        unblockArgs);
+    PXOPT_ADD_MODE("-definebyquery",         "create runs from raw exposures",       FAKETOOL_MODE_DEFINEBYQUERY,                    queueArgs);
+    PXOPT_ADD_MODE("-updaterun",             "change fake run properties",           FAKETOOL_MODE_UPDATERUN,                updaterunArgs);
+    PXOPT_ADD_MODE("-pendingexp",            "show pending exposures",               FAKETOOL_MODE_PENDINGEXP,               pendingexpArgs);
+    PXOPT_ADD_MODE("-pendingimfile",         "show pending imfiles",                 FAKETOOL_MODE_PENDINGIMFILE,            pendingimfileArgs);
+    PXOPT_ADD_MODE("-addprocessedimfile",    "add a processed imfile",               FAKETOOL_MODE_ADDPROCESSEDIMFILE,       addprocessedimfileArgs);
+    PXOPT_ADD_MODE("-processedimfile",       "show processed imfiles",               FAKETOOL_MODE_PROCESSEDIMFILE,          processedimfileArgs);
+    PXOPT_ADD_MODE("-updateprocessedimfile","change procesed imfile properties",     FAKETOOL_MODE_UPDATEPROCESSEDIMFILE,    updateprocessedimfileArgs);
+    PXOPT_ADD_MODE("-revertprocessedimfile", "undo a processed imfile",              FAKETOOL_MODE_REVERTPROCESSEDIMFILE,    revertprocessedimfileArgs);
+    PXOPT_ADD_MODE("-block",                 "set a label block",                    FAKETOOL_MODE_BLOCK,          blockArgs);
+    PXOPT_ADD_MODE("-masked",                "show blocked labels",                  FAKETOOL_MODE_MASKED,         maskedArgs);
+    PXOPT_ADD_MODE("-unmasked",              "",                                     FAKETOOL_MODE_UNMASKED,       unmaskedArgs);
+    PXOPT_ADD_MODE("-unblock",               "remove a label block",                 FAKETOOL_MODE_UNBLOCK,        unblockArgs);
+    PXOPT_ADD_MODE("-pendingcleanuprun",     "show runs that need to be cleaned up", FAKETOOL_MODE_PENDINGCLEANUPRUN,    pendingcleanuprunArgs);
+    PXOPT_ADD_MODE("-pendingcleanupimfile",  "show runs that need to be cleaned up", FAKETOOL_MODE_PENDINGCLEANUPIMFILE, pendingcleanupimfileArgs);
+    PXOPT_ADD_MODE("-donecleanup",           "show runs that have been cleaned",     FAKETOOL_MODE_DONECLEANUP,          donecleanupArgs);
 
     if (!pxGetOptions(stderr, argc, argv, config, modes, argSets)) {
Index: /branches/eam_branch_20080719/ippTools/src/stacktoolConfig.c
===================================================================
--- /branches/eam_branch_20080719/ippTools/src/stacktoolConfig.c	(revision 18941)
+++ /branches/eam_branch_20080719/ippTools/src/stacktoolConfig.c	(revision 18942)
@@ -134,4 +134,23 @@
     psMetadataAddS16(revertsumskyfileArgs, PS_LIST_TAIL, "-code",  0,            "search by fault code", 0);
 
+    // -pendingcleanuprun
+    psMetadata *pendingcleanuprunArgs = psMetadataAlloc();
+    psMetadataAddStr(pendingcleanuprunArgs, PS_LIST_TAIL, "-label",  0,            "list blocks for specified label", NULL);
+    psMetadataAddBool(pendingcleanuprunArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
+    psMetadataAddU64(pendingcleanuprunArgs, PS_LIST_TAIL, "-limit",  0,            "limit result set to N items", 0);
+
+    // -pendingcleanupskyfile
+    psMetadata *pendingcleanupskyfileArgs = psMetadataAlloc();
+    psMetadataAddStr(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-label",  0,            "list blocks for specified label", NULL);
+    psMetadataAddS64(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-stack_id", 0,          "search by stack ID", 0);
+    psMetadataAddBool(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
+    psMetadataAddU64(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-limit",  0,            "limit result set to N items", 0);
+
+    // -donecleanup
+    psMetadata *donecleanupArgs = psMetadataAlloc();
+    psMetadataAddStr(donecleanupArgs, PS_LIST_TAIL, "-label",  0,            "list blocks for specified label", NULL);
+    psMetadataAddBool(donecleanupArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
+    psMetadataAddU64(donecleanupArgs, PS_LIST_TAIL, "-limit",  0,            "limit result set to N items", 0);
+
     psFree(now);
 
@@ -148,4 +167,7 @@
     PXOPT_ADD_MODE("-sumskyfile",      "", STACKTOOL_MODE_SUMSKYFILE,      sumskyfileArgs);
     PXOPT_ADD_MODE("-revertsumskyfile","", STACKTOOL_MODE_REVERTSUMSKYFILE,      revertsumskyfileArgs);
+    PXOPT_ADD_MODE("-pendingcleanuprun",     "show runs that need to be cleaned up", STACKTOOL_MODE_PENDINGCLEANUPRUN,    pendingcleanuprunArgs);
+    PXOPT_ADD_MODE("-pendingcleanupskyfile", "show runs that need to be cleaned up", STACKTOOL_MODE_PENDINGCLEANUPSKYFILE, pendingcleanupskyfileArgs);
+    PXOPT_ADD_MODE("-donecleanup",           "show runs that have been cleaned",     STACKTOOL_MODE_DONECLEANUP,          donecleanupArgs);
 
     if (!pxGetOptions(stderr, argc, argv, config, modes, argSets)) {
Index: /branches/eam_branch_20080719/ippTools/src/warptool.c
===================================================================
--- /branches/eam_branch_20080719/ippTools/src/warptool.c	(revision 18941)
+++ /branches/eam_branch_20080719/ippTools/src/warptool.c	(revision 18942)
@@ -87,5 +87,5 @@
         MODECASE(WARPTOOL_MODE_UNBLOCK,            unblockMode);
         MODECASE(WARPTOOL_MODE_PENDINGCLEANUPRUN,  pendingcleanuprunMode);
-        MODECASE(WARPTOOL_MODE_PENDINGCLEANUPWARP, pendingcleanupwarpMode);
+        MODECASE(WARPTOOL_MODE_PENDINGCLEANUPSKYFILE, pendingcleanupwarpMode);
         MODECASE(WARPTOOL_MODE_DONECLEANUP,        donecleanupMode);
 
@@ -1218,5 +1218,5 @@
     PXOPT_COPY_STR(config->args, where, "-label", "label", "==");
 
-    psString query = pxDataGet("warptool_pendingcleanupwarp.sql");
+    psString query = pxDataGet("warptool_pendingcleanupskyfile.sql");
     if (!query) {
         psError(PXTOOLS_ERR_DATA, false, "failed to retreive SQL statement");
Index: /branches/eam_branch_20080719/ippTools/src/warptool.h
===================================================================
--- /branches/eam_branch_20080719/ippTools/src/warptool.h	(revision 18941)
+++ /branches/eam_branch_20080719/ippTools/src/warptool.h	(revision 18942)
@@ -42,5 +42,5 @@
     WARPTOOL_MODE_UNBLOCK,
     WARPTOOL_MODE_PENDINGCLEANUPRUN,
-    WARPTOOL_MODE_PENDINGCLEANUPWARP,
+    WARPTOOL_MODE_PENDINGCLEANUPSKYFILE,
     WARPTOOL_MODE_DONECLEANUP,
 } warptoolMode;
Index: /branches/eam_branch_20080719/ippTools/src/warptoolConfig.c
===================================================================
--- /branches/eam_branch_20080719/ippTools/src/warptoolConfig.c	(revision 18941)
+++ /branches/eam_branch_20080719/ippTools/src/warptoolConfig.c	(revision 18942)
@@ -251,4 +251,23 @@
     psMetadataAddStr(unblockArgs, PS_LIST_TAIL, "-label",  0,            "name of a label to unmask (required)", NULL);
 
+    // -pendingcleanuprun
+    psMetadata *pendingcleanuprunArgs = psMetadataAlloc();
+    psMetadataAddStr(pendingcleanuprunArgs, PS_LIST_TAIL, "-label",  0,            "list blocks for specified label", NULL);
+    psMetadataAddBool(pendingcleanuprunArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
+    psMetadataAddU64(pendingcleanuprunArgs, PS_LIST_TAIL, "-limit",  0,            "limit result set to N items", 0);
+
+    // -pendingcleanupskyfile
+    psMetadata *pendingcleanupskyfileArgs = psMetadataAlloc();
+    psMetadataAddStr(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-label",  0,            "list blocks for specified label", NULL);
+    psMetadataAddS64(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-warp_id", 0,          "search by warp ID", 0);
+    psMetadataAddBool(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
+    psMetadataAddU64(pendingcleanupskyfileArgs, PS_LIST_TAIL, "-limit",  0,            "limit result set to N items", 0);
+
+    // -donecleanup
+    psMetadata *donecleanupArgs = psMetadataAlloc();
+    psMetadataAddStr(donecleanupArgs, PS_LIST_TAIL, "-label",  0,            "list blocks for specified label", NULL);
+    psMetadataAddBool(donecleanupArgs, PS_LIST_TAIL, "-simple",  0,            "use the simple output format", false);
+    psMetadataAddU64(donecleanupArgs, PS_LIST_TAIL, "-limit",  0,            "limit result set to N items", 0);
+
     psFree(now);
     psMetadata *argSets = psMetadataAlloc();
@@ -266,7 +285,10 @@
     PXOPT_ADD_MODE("-warped",          "", WARPTOOL_MODE_WARPED,         warpedArgs);
     PXOPT_ADD_MODE("-revertwarped",    "", WARPTOOL_MODE_REVERTWARPED,   revertwarpedArgs);
-    PXOPT_ADD_MODE("-block",           "set a label block", WARPTOOL_MODE_BLOCK,          blockArgs);
-    PXOPT_ADD_MODE("-masked",          "show blocked lables", WARPTOOL_MODE_MASKED,         maskedArgs);
-    PXOPT_ADD_MODE("-unblock",         "remove a label block", WARPTOOL_MODE_UNBLOCK,        unblockArgs);
+    PXOPT_ADD_MODE("-block",                 "set a label block",                    WARPTOOL_MODE_BLOCK,          blockArgs);
+    PXOPT_ADD_MODE("-masked",                "show blocked lables",                  WARPTOOL_MODE_MASKED,         maskedArgs);
+    PXOPT_ADD_MODE("-unblock",               "remove a label block",                 WARPTOOL_MODE_UNBLOCK,        unblockArgs);
+    PXOPT_ADD_MODE("-pendingcleanuprun",     "show runs that need to be cleaned up", WARPTOOL_MODE_PENDINGCLEANUPRUN,    pendingcleanuprunArgs);
+    PXOPT_ADD_MODE("-pendingcleanupskyfile", "show runs that need to be cleaned up", WARPTOOL_MODE_PENDINGCLEANUPSKYFILE, pendingcleanupskyfileArgs);
+    PXOPT_ADD_MODE("-donecleanup",           "show runs that have been cleaned",     WARPTOOL_MODE_DONECLEANUP,          donecleanupArgs);
 
     if (!pxGetOptions(stderr, argc, argv, config, modes, argSets)) {
