Index: /trunk/ippTools/src/dettool.c
===================================================================
--- /trunk/ippTools/src/dettool.c	(revision 8174)
+++ /trunk/ippTools/src/dettool.c	(revision 8175)
@@ -9,4 +9,5 @@
 #include "dettool.h"
 
+static bool pendingMode(pxConfig *config);
 static bool defineMode(pxConfig *config);
 static bool runsMode(pxConfig *config);
@@ -52,4 +53,5 @@
 
     switch (config->mode) {
+        MODECASE(DETTOOL_MODE_PENDING, pendingMode);
         MODECASE(DETTOOL_MODE_DEFINE, defineMode);
         MODECASE(DETTOOL_MODE_RUNS, runsMode);
@@ -90,4 +92,33 @@
 
     exit(EXIT_FAILURE);
+}
+
+static bool pendingMode(pxConfig *config)
+{
+    PS_ASSERT_PTR_NON_NULL(config, NULL);
+
+     char *query = "SELECT rawDetrendExp.* FROM rawDetrendExp LEFT JOIN detInputExp ON rawDetrendExp.exp_id = detInputExp.exp_id WHERE detInputExp.exp_id IS NULL";
+
+    if (!p_psDBRunQuery(config->dbh, query)) {
+        psError(PS_ERR_UNKNOWN, false, "database error");
+        return false;
+    } 
+
+    psArray *result = p_psDBFetchResult(config->dbh);
+    if (!result) {
+        // XXX check psError here
+        psError(PS_ERR_UNKNOWN, false, "no pending rawDetrendExp rows found");
+        return false;
+    }
+
+    if (!ippdbPrintMetadatas(stdout, result, "rawDetrendExp", true)) {
+        psError(PS_ERR_UNKNOWN, false, "failed to print array");
+        psFree(result);
+        return false;
+    }
+
+    psFree(result);
+
+    return true;
 }
 
@@ -1556,4 +1587,24 @@
         return false;
     }
+    psString uri = psMetadataLookupStr(&status, config->args, "-uri");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -uri");
+        return false;
+    }
+    if (!uri) {
+        psError(PS_ERR_UNKNOWN, true, "-uri is required");
+        return false;
+    }
+    // optional
+    psString b1_uri = psMetadataLookupStr(&status, config->args, "-b1_uri");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -b1_uri");
+        return false;
+    }
+    psString b2_uri = psMetadataLookupStr(&status, config->args, "-b2_uri");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -b2_uri");
+        return false;
+    }
 
     // iteration has a default value
@@ -1617,5 +1668,8 @@
                 exp_id,
                 class_id,
-                recipe
+                recipe,
+                uri,
+                b1_uri,
+                b2_uri
             );
 
Index: /trunk/ippTools/src/dettool.h
===================================================================
--- /trunk/ippTools/src/dettool.h	(revision 8174)
+++ /trunk/ippTools/src/dettool.h	(revision 8175)
@@ -6,4 +6,5 @@
 typedef enum {
     DETTOOL_MODE_NONE           = 0x0,
+    DETTOOL_MODE_PENDING,
     DETTOOL_MODE_DEFINE,
     DETTOOL_MODE_RUNS,
Index: /trunk/ippTools/src/dettoolConfig.c
===================================================================
--- /trunk/ippTools/src/dettoolConfig.c	(revision 8174)
+++ /trunk/ippTools/src/dettoolConfig.c	(revision 8175)
@@ -20,4 +20,13 @@
         goto FAIL;
     }
+
+    // -pending
+    psMetadata *pendingArgs = psMetadataAlloc();
+    psMetadataAddStr(pendingArgs, PS_LIST_TAIL, "-inst",  0, "define camera of interest", NULL);
+    psMetadataAddStr(pendingArgs, PS_LIST_TAIL, "-telescope",  0, "define telescope of interest", NULL);
+    psMetadataAddStr(pendingArgs, PS_LIST_TAIL, "-filter",  0, "define filter of interest", NULL);
+    psMetadataAddStr(pendingArgs, PS_LIST_TAIL, "-exp_id",  0, "define exposure ID", NULL);
+    psMetadataAddStr(pendingArgs, PS_LIST_TAIL, "-exp_type",  0, "define exposure type", NULL);
+    psMetadataAddStr(pendingArgs, PS_LIST_TAIL, "-uri",  0, "define URL", NULL);
 
     // -define 
@@ -181,4 +190,10 @@
     psMetadataAddStr(addresidArgs, PS_LIST_TAIL, "-recip",  0,
         "define recipe (required)", NULL);
+    psMetadataAddStr(addresidArgs, PS_LIST_TAIL, "-uri",  0,
+        "define resid file URI (required)", NULL);
+    psMetadataAddStr(addresidArgs, PS_LIST_TAIL, "-b1_uri",  0,
+        "define banana 1", NULL);
+    psMetadataAddStr(addresidArgs, PS_LIST_TAIL, "-b2_uri",  0,
+        "define banana 2", NULL);
 
     // -resid
@@ -263,4 +278,5 @@
 
     // find which mode we're running under
+    PXTOOL_MODE("-pending",         DETTOOL_MODE_PENDING,       pendingArgs);
     PXTOOL_MODE("-define",          DETTOOL_MODE_DEFINE,        defineArgs);
     PXTOOL_MODE("-raw",             DETTOOL_MODE_RAW,           rawArgs);
@@ -298,5 +314,8 @@
         printf("\nPan-STARRS Detrend Tool\n");
         printf("Usage: %s <mode> [<options>]\n\n", argv[0]);
-        printf(" <mode> : [-define|-runs|-selectrun|-select|-raw|-addprocessed|-processed|-addstacked|-stacked|-stackedframe|-addnormalized|-normalized|-normalizedframe|-addresid|-resid|-addresidexp|-residexp|-declaremasterframe|-masterframe|-master|-rerun]\n\n");
+        printf(" <mode> : [-pending|-define|-runs|-selectrun|-select|-raw|-addprocessed|-processed|-addstacked|-stacked|-stackedframe|-addnormalized|-normalized|-normalizedframe|-addresid|-resid|-addresidexp|-residexp|-declaremasterframe|-masterframe|-master|-rerun]\n\n");
+        fprintf (stdout, "-pending ");
+        psArgumentHelp(pendingArgs);
+        psFree(pendingArgs);
         fprintf (stdout, "-define ");
         psArgumentHelp(defineArgs);
@@ -369,4 +388,5 @@
     }
 
+    psFree(pendingArgs);
     psFree(defineArgs);
     psFree(runsArgs);
Index: /trunk/ippTools/src/pxframes.c
===================================================================
--- /trunk/ippTools/src/pxframes.c	(revision 8174)
+++ /trunk/ippTools/src/pxframes.c	(revision 8175)
@@ -77,4 +77,5 @@
 PX_FRAME_PRINT(newFrame, newImfile);
 PX_FRAME_PRINT(rawScienceFrame, rawImfile);
+PX_FRAME_PRINT(rawDetrendFrame, rawImfile);
 PX_FRAME_PRINT(p2PendingFrame, p2PendingImfile);
 
Index: /trunk/ippTools/src/pxtools.h
===================================================================
--- /trunk/ippTools/src/pxtools.h	(revision 8174)
+++ /trunk/ippTools/src/pxtools.h	(revision 8175)
@@ -123,4 +123,5 @@
 psArray *rawScienceFrameSearch(pxConfig *config);
 
+bool rawDetrendFramePrint(FILE *stream, pxConfig *config, psArray *frames);
 psArray *rawDetrendFrameSearch(pxConfig *config);
 
