Index: trunk/ippScripts/scripts/ipp_filename.pl
===================================================================
--- trunk/ippScripts/scripts/ipp_filename.pl	(revision 11110)
+++ trunk/ippScripts/scripts/ipp_filename.pl	(revision 13237)
@@ -4,14 +4,34 @@
 use strict;
 
+use Getopt::Long qw( GetOptions :config auto_help auto_version gnu_getopt );
+use Pod::Usage qw( pod2usage );
+
 use PS::IPP::Config;
 my $ipprc = PS::IPP::Config->new();
 
-die "USAGE: ipp_filename.pl (filerule) (output) (classID)\n" if scalar @ARGV != 3;
+my ($filerule, $class_id, $basename, $camera);
 
-my $filerule = $ARGV[0];
-my $output = $ARGV[1];
-my $classID = $ARGV[2];
+GetOptions('filerule=s'    => \$filerule,
+	   'class_id=s'    => \$class_id,
+	   'basename=s'    => \$basename,
+	   'camera|c=s'    => \$camera,
+	   ) or pod2usage( 2 );
 
-print $ipprc->convert_filename_absolute($filerule, $output, $classID) . "\n";
+pod2usage( -msg => "Unknown option: @ARGV", -exitval => 2 ) if @ARGV;
+pod2usage(
+    -msg => "Required options: --filerule --class_id --basename --camera",
+    -exitval => 3,
+) unless defined $basename
+    and defined $filerule 
+    and defined $class_id 
+    and defined $camera;
+
+$ipprc->define_camera($camera);
+
+my $filename = $ipprc->filename($filerule, $basename, $class_id);
+
+my $realname = $ipprc->convert_filename_absolute( $filename );
+
+print "$realname\n";
 
 1;
