Index: trunk/ippTools/src/dettool.c
===================================================================
--- trunk/ippTools/src/dettool.c	(revision 12131)
+++ trunk/ippTools/src/dettool.c	(revision 12422)
@@ -242,4 +242,14 @@
     }
 
+    psString filelevel = psMetadataLookupStr(&status, config->args, "-filelevel");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -filelevel");
+        return false;
+    }
+    if (!filelevel) {
+        psError(PS_ERR_UNKNOWN, true, "-filelevel is required");
+        return false;
+    }
+
     psString workdir = psMetadataLookupStr(&status, config->args, "-workdir");
     if (!status) {
@@ -509,4 +519,5 @@
             mode,
             "run",
+            filelevel,
             workdir,
             camera,
@@ -661,4 +672,14 @@
     }
 
+    psString filelevel = psMetadataLookupStr(&status, config->args, "-filelevel");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -filelevel");
+        return false;
+    }
+    if (!filelevel) {
+        psError(PS_ERR_UNKNOWN, true, "-filelevel is required");
+        return false;
+    }
+
     psString workdir = psMetadataLookupStr(&status, config->args, "-workdir");
     if (!status) {
@@ -1162,4 +1183,5 @@
             mode,
             "run",  // state
+            filelevel,
             workdir,
             camera,
@@ -1367,4 +1389,24 @@
         psFree(detRun->exp_type);
         detRun->exp_type = psStringCopy(exp_type);
+    }
+
+    psString filelevel = psMetadataLookupStr(&status, config->args, "-set_filelevel");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -set_filelevel");
+        return false;
+    }
+    if (filelevel) {
+        psFree(detRun->filelevel);
+        detRun->filelevel = psStringCopy(filelevel);
+    }
+
+    psString workdir = psMetadataLookupStr(&status, config->args, "-set_workdir");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -set_workdir");
+        return false;
+    }
+    if (workdir) {
+        psFree(detRun->workdir);
+        detRun->workdir = psStringCopy(workdir);
     }
 
@@ -6103,4 +6145,14 @@
     }
 
+    psString filelevel = psMetadataLookupStr(&status, config->args, "-filelevel");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -filelevel");
+        return false;
+    }
+    if (!filelevel) {
+        psError(PS_ERR_UNKNOWN, true, "-filelevel is required");
+        return false;
+    }
+
     psString workdir = psMetadataLookupStr(&status, config->args, "-workdir");
     if (!status) {
@@ -6313,4 +6365,5 @@
             mode,
             "reg",      // state
+            filelevel,
             workdir,
             camera,
