Index: trunk/ippScripts/scripts/detrend_stack.pl
===================================================================
--- trunk/ippScripts/scripts/detrend_stack.pl	(revision 12800)
+++ trunk/ippScripts/scripts/detrend_stack.pl	(revision 13275)
@@ -18,15 +18,14 @@
 use PS::IPP::Metadata::Stats;
 
-use PS::IPP::Config qw(
-    $PS_EXIT_SUCCESS
-    $PS_EXIT_UNKNOWN_ERROR
-    $PS_EXIT_SYS_ERROR
-    $PS_EXIT_CONFIG_ERROR
-    $PS_EXIT_PROG_ERROR
-    $PS_EXIT_DATA_ERROR
-    $PS_EXIT_TIMEOUT_ERROR
-    );
+use PS::IPP::Config qw($PS_EXIT_SUCCESS
+		       $PS_EXIT_UNKNOWN_ERROR
+		       $PS_EXIT_SYS_ERROR
+		       $PS_EXIT_CONFIG_ERROR
+		       $PS_EXIT_PROG_ERROR
+		       $PS_EXIT_DATA_ERROR
+		       $PS_EXIT_TIMEOUT_ERROR
+		       caturi
+		       );
 my $ipprc = PS::IPP::Config->new(); # IPP configuration
-use File::Spec;
 
 use Getopt::Long qw( GetOptions :config auto_help auto_version gnu_getopt );
@@ -98,29 +97,16 @@
 }
 
-# Set output directory
-if (defined $workdir) {
-    $workdir = $ipprc->convert_filename_absolute( $workdir );
-    my $subdir = "$camera.$det_type.$det_id";
-    $workdir = File::Spec->catdir( $workdir, $subdir );
-} else {
-    my $example = $ipprc->convert_filename_absolute( ${$files}[0]->{uri} ); # Example file
-    my ($vol, $dir, $file) = File::Spec->splitpath( $example );
-    $workdir = $dir;
-}
-system "mkdir -p $workdir" unless -d $workdir;
+$workdir = caturi( $workdir, "$camera.$det_type.$det_id" ) if defined $workdir;
 
-# Stack the files
-my $outputFile = "$camera.$det_type.$det_id.$iter.$class_id"; # Root name
-my $outputRoot = File::Spec->catfile( $workdir, $outputFile );
+my $outputRoot = $ipprc->file_prepare( "$camera.$det_type.$det_id.$iter.$class_id", $workdir, ${$files}[0]->{uri} );
 my $outputStack = $outputRoot . '.fits'; # Output name
 my $outputStats = $outputRoot . '.stats'; # Statistics name
 
+# Stack the files
 my $stats = PS::IPP::Metadata::Stats->new(); # Stats parser
 unless ($no_op) {
     my $command = "$ppMerge $outputStack"; # Command to run
     foreach my $file (@$files) {
-	my $uri = $file->{uri};	# URI for input file
-	$uri = $ipprc->convert_filename_absolute($uri);
-	$command .= ' ' . $uri;
+	$command .= ' ' . $file->{uri};
     }
     $command .= " -recipe PPMERGE $recipe";
@@ -134,9 +120,9 @@
 	&my_die("Unable to perform ppMerge: $error_code", $det_id, $iter, $class_id, $error_code);
     }
-    &my_die("Unable to find expected output file: $outputStack\n", $det_id, $iter, $class_id, $PS_EXIT_SYS_ERROR) unless -f $outputStack;
-    &my_die("Unable to find expected output file: $outputStats\n", $det_id, $iter, $class_id, $PS_EXIT_SYS_ERROR) unless -f $outputStats;
+    &my_die("Unable to find expected output file: $outputStack\n", $det_id, $iter, $class_id, $PS_EXIT_SYS_ERROR) unless -f $ipprc->file_resolve($outputStack);
+    &my_die("Unable to find expected output file: $outputStats\n", $det_id, $iter, $class_id, $PS_EXIT_SYS_ERROR) unless -f $ipprc->file_resolve($outputStats);
 
     # Get the statistics on the stacked image
-    open(my $statsFile, "$outputStats") or
+    open(my $statsFile, $ipprc->file_resolve("$outputStats")) or
 	&my_die("Can't open statistics file $outputStats: $!", $det_id, $iter, $class_id, $PS_EXIT_SYS_ERROR);
     my $contents = do { local $/; <$statsFile> }; # Contents of file
@@ -156,5 +142,4 @@
 
 # Add the resultant into the database
-$outputStack = $ipprc->convert_filename_relative($outputStack);
 unless ($no_update) {
     my $command = "$dettool -addstacked -det_id $det_id -iteration $iter -class_id $class_id" .
@@ -170,6 +155,4 @@
 	exit($error_code);
     }
-
-    unlink $outputStats;
 }
 
