Index: trunk/ippScripts/scripts/diff_skycell.pl
===================================================================
--- trunk/ippScripts/scripts/diff_skycell.pl	(revision 13118)
+++ trunk/ippScripts/scripts/diff_skycell.pl	(revision 13275)
@@ -19,15 +19,14 @@
 use Data::Dumper;
 
-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 constant POIS_OPTIONS => '-v -B 1000';
@@ -89,9 +88,8 @@
 my $camera;			# Camera
 foreach my $file (@$files) {
-    my $uri = $ipprc->convert_filename_absolute( $file->{uri} ); # URI for file
     if (defined $file->{template} and $file->{template}) {
-	$template = $uri;
-    } else {
-	$input = $uri;
+	$template = $file->{uri};
+    } else {
+	$input = $file->{uri};
     }
     if (defined $tess_id) {
@@ -119,18 +117,8 @@
 $ipprc->define_camera($camera);
 
-### Working directory
-if (defined $workdir) {
-    $workdir = $ipprc->convert_filename_absolute( $workdir );
-    $workdir = File::Spec->catdir( $workdir, "tess_" . $tess_id, "sky_" . $skycell_id );
-} else {
-    my ($vol, $dir, $file) = File::Spec->splitpath( $input );
-    $workdir = $dir;
-}
-system "mkdir -p $workdir" unless -d $workdir;
 
 # Get the output filenames
-my $outputFile = "$tess_id.$skycell_id.dif$diff_id"; # Root name
-my $outputRoot = File::Spec->catfile( $workdir, $outputFile );
-
+$workdir = caturi( $workdir, "tess_" . $tess_id, "sky_" . $skycell_id ) if defined $workdir;
+my $outputRoot = $ipprc->file_prepare( "$tess_id.$skycell_id.dif$diff_id", $workdir, $input );
 my $outputName = $outputRoot . ".fits";
 my $bin1Name =  $ipprc->filename("PPIMAGE.BIN1", $outputRoot);
@@ -138,8 +126,14 @@
 my $outputStats = $outputRoot . '.stats';
 
+
+### XXX We have to play around some here, because pois can't use Nebulous
+my $outputNameResolved = $ipprc->file_create( $outputName );
+my $templateResolved = $ipprc->file_resolve( $template );
+my $inputResolved = $ipprc->file_resolve( $input );
+
 # Perform subtraction
 my $stats = PS::IPP::Metadata::Stats->new(); # Stats parser
 unless ($no_op) {
-    my $command = "$pois " . POIS_OPTIONS() . " $template $input $outputName"; # Command to run pois
+    my $command = "$pois " . POIS_OPTIONS() . " $templateResolved $inputResolved $outputNameResolved"; # Command to run pois
 
     my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
@@ -149,13 +143,13 @@
 	&my_die("Unable to perform ppImage: $error_code", $diff_id, $error_code);
     }
-    &my_die("Couldn't find expected output file: $outputName", $diff_id, $PS_EXIT_SYS_ERROR) unless -f $outputName;
-#    &my_die("Couldn't find expected output file: $bin1Name",    $diff_id, $PS_EXIT_SYS_ERROR) unless -f $bin1Name;
-#    &my_die("Couldn't find expected output file: $bin2Name",    $diff_id, $PS_EXIT_SYS_ERROR) unless -f $bin2Name;
-#    &my_die("Couldn't find expected output file: $outputStats", $diff_id, $PS_EXIT_SYS_ERROR) unless -f $outputStats;
+    &my_die("Couldn't find expected output file: $outputName", $diff_id, $PS_EXIT_SYS_ERROR) unless -f $ipprc->file_resolve($outputName);
+#    &my_die("Couldn't find expected output file: $bin1Name",    $diff_id, $PS_EXIT_SYS_ERROR) unless -f $ipprc->file_resolve($bin1Name);
+#    &my_die("Couldn't find expected output file: $bin2Name",    $diff_id, $PS_EXIT_SYS_ERROR) unless -f $ipprc->file_resolve($bin2Name);
+#    &my_die("Couldn't find expected output file: $outputStats", $diff_id, $PS_EXIT_SYS_ERROR) unless -f $ipprc->file_resolve($outputStats);
 
     # Get the statistics on the residual image
     if (0) { ### Disabled because pois doesn't output stats yet
 	my $statsFile;		# File handle
-	open $statsFile, $outputStats or &my_die("Can't open statistics file $outputStats: $!", $diff_id, $PS_EXIT_SYS_ERROR);
+	open $statsFile, $ipprc->file_resolve($outputStats) or &my_die("Can't open statistics file $outputStats: $!", $diff_id, $PS_EXIT_SYS_ERROR);
 	my @contents = <$statsFile>; # Contents of file
 	close $statsFile;
@@ -167,7 +161,4 @@
 
 # Add the processed file to the database
-$outputName = $ipprc->convert_filename_relative( $outputName );
-$outputRoot = $ipprc->convert_filename_relative( $outputRoot );
-
 my $bg = ($stats->bg_mean() or 'NAN');
 my $bg_stdev = ($stats->bg_stdev() or 'NAN');
@@ -187,6 +178,4 @@
 	    &my_die("Unable to perform difftool -adddiffskyfile: $error_code", $diff_id, $error_code);
 	}
-	
-#	unlink $outputStats;    
     }
 
