Index: trunk/ippTools/src/pztoolConfig.c
===================================================================
--- trunk/ippTools/src/pztoolConfig.c	(revision 9392)
+++ trunk/ippTools/src/pztoolConfig.c	(revision 9967)
@@ -42,34 +42,36 @@
     // -seen
     psMetadata *seenArgs = psMetadataAlloc();
-    psMetadataAddStr(seenArgs, PS_LIST_TAIL, "-exp_tag",  0,
-        "define exposure ID", NULL); 
-    psMetadataAddStr(seenArgs, PS_LIST_TAIL, "-inst",  0,
-        "define camera ID", NULL); 
-    psMetadataAddStr(seenArgs, PS_LIST_TAIL, "-telescope",  0,
-        "define telescope ID", NULL); 
-    psMetadataAddStr(seenArgs, PS_LIST_TAIL, "-exp_type",  0,
-        "define exposure type", NULL); 
+    psMetadataAddStr(seenArgs, PS_LIST_TAIL, "-exp_tag", 0,
+            "define exposure ID", NULL); 
+    psMetadataAddStr(seenArgs, PS_LIST_TAIL, "-inst", 0,
+            "define camera ID", NULL); 
+    psMetadataAddStr(seenArgs, PS_LIST_TAIL, "-telescope", 0,
+            "define telescope ID", NULL); 
+    psMetadataAddStr(seenArgs, PS_LIST_TAIL, "-exp_type", 0,
+            "define exposure type", NULL); 
+    psMetadataAddBool(seenArgs, PS_LIST_TAIL, "-simple", 0,
+            "use the simple output format", false);
     
     // -pending
     psMetadata *pendingArgs = psMetadataAlloc();
-    psMetadataAddStr(pendingArgs, PS_LIST_TAIL, "-exp_tag",  0,
-        "define exposure ID", NULL); 
-    psMetadataAddStr(pendingArgs, PS_LIST_TAIL, "-inst",  0,
-        "define camera ID", NULL); 
-    psMetadataAddStr(pendingArgs, PS_LIST_TAIL, "-telescope",  0,
-        "define telescope ID", NULL); 
-    psMetadataAddStr(pendingArgs, PS_LIST_TAIL, "-exp_type",  0,
-        "define exposure type", NULL); 
+    psMetadataAddStr(pendingArgs, PS_LIST_TAIL, "-exp_tag", 0,
+            "define exposure ID", NULL); 
+    psMetadataAddStr(pendingArgs, PS_LIST_TAIL, "-inst", 0,
+            "define camera ID", NULL); 
+    psMetadataAddStr(pendingArgs, PS_LIST_TAIL, "-telescope", 0,
+            "define telescope ID", NULL); 
+    psMetadataAddStr(pendingArgs, PS_LIST_TAIL, "-exp_type", 0,
+            "define exposure type", NULL); 
 
     // -copydone
     psMetadata *copydoneArgs = psMetadataAlloc();
-    psMetadataAddStr(copydoneArgs, PS_LIST_TAIL, "-exp_tag",  0,
-        "define exposure ID", NULL); 
-    psMetadataAddStr(copydoneArgs, PS_LIST_TAIL, "-class",  0,
-        "define class", NULL);
-    psMetadataAddStr(copydoneArgs, PS_LIST_TAIL, "-class_id",  0,
-        "define class_id", NULL);
-    psMetadataAddStr(copydoneArgs, PS_LIST_TAIL, "-suri",  0,
-        "define storage uri", NULL);
+    psMetadataAddStr(copydoneArgs, PS_LIST_TAIL, "-exp_tag", 0,
+            "define exposure ID", NULL); 
+    psMetadataAddStr(copydoneArgs, PS_LIST_TAIL, "-class", 0,
+            "define class", NULL);
+    psMetadataAddStr(copydoneArgs, PS_LIST_TAIL, "-class_id", 0,
+            "define class_id", NULL);
+    psMetadataAddStr(copydoneArgs, PS_LIST_TAIL, "-suri", 0,
+            "define storage uri", NULL);
 
 #define PXTOOL_MODE(option, modeval, argset) \
@@ -80,10 +82,17 @@
         if (config->mode) { \
             psError(PS_ERR_UNKNOWN, true, "only one mode selection is allowed"); \
+            goto FAIL; \
         } \
         config->mode = modeval; \
         config->args = psMemIncrRefCounter(argset); \
     } \
+    if (!psMetadataAddMetadata(argSets, PS_LIST_TAIL, option, 0, NULL, argset)) {;\
+        psError(PS_ERR_UNKNOWN, false, "failed to add argset for %s", option); \
+    } \
+    psFree(argset); \
 }
 
+    psMetadata *argSets = psMetadataAlloc();
+    // find which mode we're running under
     PXTOOL_MODE("-seen",            PZTOOL_MODE_SEEN,         seenArgs);
     PXTOOL_MODE("-pending",         PZTOOL_MODE_PENDING,      pendingArgs);
@@ -100,26 +109,25 @@
 
     if (argErr) {
-        printf("\nPan-STARRS Phase Z Search Tool\n");
+        printf("\nPan-STARRS Detrend Tool\n");
         printf("Usage: %s <mode> [<options>]\n\n", argv[0]);
-        printf(" <mode> : -seen | -pending | -copydone\n\n");
+        printf(" <mode> :\n\n"); 
 
-        fprintf (stdout, "-seen ");
-        psArgumentHelp(seenArgs);
-        psFree(seenArgs);
+        psMetadataIterator *iter = psMetadataIteratorAlloc(argSets, 0, NULL);
+        psMetadataItem *item = NULL;
+        while ((item = psMetadataGetAndIncrement(iter))) {
+            if (!item->type == PS_DATA_METADATA) {
+                psAbort(argv[0], "all options must be specified as a metadata");
+            }
 
-        fprintf (stdout, "-pending ");
-        psArgumentHelp(pendingArgs);
-        psFree(pendingArgs);
+            fprintf(stdout, "%s ", item->name);
+            psArgumentHelp(item->data.md);
+        }
+        psFree(iter);
 
-        fprintf (stdout, "-copydone ");
-        psArgumentHelp(copydoneArgs);
-        psFree(copydoneArgs);
-
+        psFree(argSets);
         goto FAIL;
     }
 
-    psFree(seenArgs);
-    psArgumentHelp(pendingArgs);
-    psFree(copydoneArgs);
+    psFree(argSets);
 
     // setup search criterion
