Index: /trunk/ippTools/src/Makefile.am
===================================================================
--- /trunk/ippTools/src/Makefile.am	(revision 6881)
+++ /trunk/ippTools/src/Makefile.am	(revision 6882)
@@ -1,6 +1,6 @@
-bin_PROGRAMS = pxadmin pzsearch p2search p0search pzgetexp
+bin_PROGRAMS = pxadmin pzsearch p2search p0search pzgetexp pzgetimfiles
 
 include_HEADERS = pxtools.h
-noinst_HEADERS = pzgetexp.h slurp.h
+noinst_HEADERS = pzgetexp.h pzgetimfiles.h slurp.h
 lib_LTLIBRARIES = libpxtools.la
 libpxtools_la_CFLAGS	= $(PSLIB_CFLAGS) $(PSMODULES_CFLAGS) $(METADATADB_CFLAGS) $(pxtools_CFLAGS)
@@ -52,4 +52,10 @@
     pzgetexpConfig.c
 
+pzgetimfiles_CFLAGS = $(PSLIB_CFLAGS) $(PSMODULES_CFLAGS) $(METADATADB_CFLAGS) $(pxtools_CFLAGS)
+pzgetimfiles_LDADD = $(PSLIB_LIBS) $(PSMODULES_LIBS) $(METADATADB_LIBS) $(top_builddir)/src/libpxtools.la
+pzgetimfiles_SOURCES = \
+    pzgetimfiles.c \
+    pzgetimfilesConfig.c
+
 clean-local:
 	-rm -f TAGS
Index: /trunk/ippTools/src/pzgetimfiles.c
===================================================================
--- /trunk/ippTools/src/pzgetimfiles.c	(revision 6882)
+++ /trunk/ippTools/src/pzgetimfiles.c	(revision 6882)
@@ -0,0 +1,23 @@
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdlib.h>
+#include <stdio.h>
+
+#include "pxtools.h"
+#include "pzgetimfiles.h"
+
+int main(int argc, char **argv)
+{
+    pxConfig *config = pzgetimfilesConfig(NULL, argc, argv);
+
+    psFree(config);
+
+    exit(EXIT_SUCCESS);
+
+FAIL:
+    psFree(config);
+
+    exit(EXIT_FAILURE);
+}
Index: /trunk/ippTools/src/pzgetimfiles.h
===================================================================
--- /trunk/ippTools/src/pzgetimfiles.h	(revision 6882)
+++ /trunk/ippTools/src/pzgetimfiles.h	(revision 6882)
@@ -0,0 +1,8 @@
+#ifndef PZGETIMFILES_H
+#define PZGETIMFILES 1
+
+#include "pxtools.h"
+
+pxConfig *pzgetimfilesConfig(pxConfig *config, int argc, char **argv);
+
+#endif // PZGETIMFILES_H
Index: /trunk/ippTools/src/pzgetimfilesConfig.c
===================================================================
--- /trunk/ippTools/src/pzgetimfilesConfig.c	(revision 6882)
+++ /trunk/ippTools/src/pzgetimfilesConfig.c	(revision 6882)
@@ -0,0 +1,51 @@
+#include <pmConfig.h>
+
+#include "pxtools.h"
+
+pxConfig *pzgetimfilesConfig(pxConfig *config, int argc, char **argv) {
+    if (!config) {
+        config = pxConfigAlloc();            
+    }
+
+    if (! pmConfigRead(&config->site, &config->camera, &config->recipe, &argc, argv, RECIPE)) {
+        psError(PS_ERR_UNKNOWN, false, "Can't find site configuration!\n");
+        exit(EXIT_FAILURE);
+    }
+
+    psMetadata *args = psMetadataAlloc();
+    psMetadataAddStr(args , PS_LIST_TAIL, "-uri", 0,
+        "DataStore product URI", "");
+    psMetadataAddStr(args , PS_LIST_TAIL, "-inst", 0,
+        "camera name", "");
+    psMetadataAddStr(args , PS_LIST_TAIL, "-telescope",  0,
+        "telescope name", "");
+
+    bool status = false;
+    if (!psArgumentParse(args, &argc, argv)
+        || argc != 1
+        || strcmp(psMetadataLookupStr(&status, args, "-uri"), "") == 0
+        || strcmp(psMetadataLookupStr(&status, args, "-inst"), "") == 0
+        || strcmp(psMetadataLookupStr(&status, args, "-telescope"), "") == 0
+    ) {
+        fprintf(stderr, "error parsing arguments\n");
+        printf("\nPan-STARRS Phase Z Search Tool\n");
+        printf("Usage: %s -uri -inst -telescope\n\n", argv[0]);
+        psArgumentHelp(args);
+        psFree(config);
+        exit(EXIT_FAILURE);
+    }
+
+    config->args = args;
+    // don't free args here as it's silly to increment the ref count then
+    // "free" it
+
+    // define Database handle, if used
+    config->dbh = pmConfigDB(config->site);
+    if(!config->dbh) {
+        psError(PS_ERR_UNKNOWN, false, "Can't connect to db\n");
+        psFree(config);
+        exit(EXIT_FAILURE);
+    }
+
+    return config;
+} 
