Index: trunk/psModules/src/config/pmConfigRun.c
===================================================================
--- trunk/psModules/src/config/pmConfigRun.c	(revision 23259)
+++ trunk/psModules/src/config/pmConfigRun.c	(revision 23268)
@@ -71,4 +71,39 @@
 }
 
+psArray *pmConfigRunFileGet(pmConfig *config, const char *name)
+{
+    PS_ASSERT_PTR_NON_NULL(config, false);
+    PS_ASSERT_STRING_NON_EMPTY(name, false);
+
+    psMetadata *run = configRun(config);// RUN information
+    psAssert(run, "Require run-time information");
+    psMetadata *files = configElement(run, "FILES", "Filerules used during execution");
+    psAssert(files, "Require list of files");
+
+    psList *list = psListAlloc(NULL);   // List of file names
+
+    psString regex = NULL;              // Regular expression for iteration
+    psStringAppend(&regex, "^%s$", name);
+    psMetadataIterator *iter = psMetadataIteratorAlloc(files, PS_LIST_HEAD, regex);
+    psFree(regex);
+    psMetadataItem *item;               // Item from iteration
+    while ((item = psMetadataGetAndIncrement(iter))) {
+        psAssert(item->type == PS_DATA_STRING, "We only put STRING types here.");
+        psListAdd(list, PS_LIST_TAIL, item->data.str);
+    }
+    psFree(iter);
+
+    if (psListLength(list) == 0) {
+        // Didn't find anything
+        psFree(list);
+        return NULL;
+    }
+
+    psArray *array = psListToArray(list); // Array of file names, to return
+    psFree(list);
+
+    return array;
+}
+
 
 bool pmConfigRunCommand(pmConfig *config, int argc, char **argv)
