|
Tim Waugh |
b9b53f |
#!/usr/bin/perl
|
|
Tim Waugh |
b9b53f |
|
|
Tim Waugh |
b9b53f |
use Getopt::Std;
|
|
Tim Waugh |
b9b53f |
getopts("hr:");
|
|
Tim Waugh |
b9b53f |
help() if $opt_h;
|
|
Tim Waugh |
b9b53f |
$libdir=$opt_r if $opt_r;
|
|
Tim Waugh |
b9b53f |
|
|
Tim Waugh |
b9b53f |
use Foomatic::PPD;
|
|
Tim Waugh |
b9b53f |
use Foomatic::Defaults;
|
|
Tim Waugh |
b9b53f |
|
|
Tim Waugh |
b9b53f |
my $file = $ARGV[0];
|
|
Tim Waugh |
b9b53f |
my $printer = $ARGV[1];
|
|
Tim Waugh |
b9b53f |
my $driver = $ARGV[2];
|
|
Tim Waugh |
b9b53f |
|
|
Tim Waugh |
b9b53f |
if (! -f "$libdir/db/source/printer/$printer.xml") {
|
|
Tim Waugh |
b9b53f |
die "Printer $printer does not seem to exist in the database!\n";
|
|
Tim Waugh |
b9b53f |
}
|
|
Tim Waugh |
b9b53f |
|
|
Tim Waugh |
b9b53f |
if (! -f $file) {
|
|
Tim Waugh |
b9b53f |
die "The PPD file you specified, $file, does not seem to exist!\n";
|
|
Tim Waugh |
b9b53f |
}
|
|
Tim Waugh |
b9b53f |
|
|
Tim Waugh |
b9b53f |
# Load the PPD
|
|
Tim Waugh |
b9b53f |
my $p = new Foomatic::PPD $file, $printer;
|
|
Tim Waugh |
b9b53f |
|
|
Tim Waugh |
b9b53f |
# Normal behavior, save as various option files by ID
|
|
Tim Waugh |
b9b53f |
my @opts = $p->foo_options();
|
|
Tim Waugh |
b9b53f |
for (@opts) {
|
|
Tim Waugh |
b9b53f |
my ($id, $xml) = ($_->{'id'}, $_->{'xml'});
|
|
Tim Waugh |
b9b53f |
my $ofile = "$libdir/db/source/opt/$id.xml";
|
|
Tim Waugh |
b9b53f |
if (-f "$ofile") { die "Output file $ofile already exists\n"; }
|
|
Tim Waugh |
b9b53f |
open TMP, ">$ofile" or die "Cannot write $ofile!\n";
|
|
Tim Waugh |
b9b53f |
print STDERR "Writing $ofile\n";
|
|
Tim Waugh |
b9b53f |
# Fix <driver> section>
|
|
Tim Waugh |
b9b53f |
print TMP join('',@{$xml});
|
|
Tim Waugh |
b9b53f |
close TMP;
|
|
Tim Waugh |
b9b53f |
}
|
|
Tim Waugh |
b9b53f |
exit(0);
|
|
Tim Waugh |
b9b53f |
|
|
Tim Waugh |
b9b53f |
sub help {
|
|
Tim Waugh |
b9b53f |
select STDERR;
|
|
Tim Waugh |
b9b53f |
print "\n";
|
|
Tim Waugh |
b9b53f |
print "Usage: foomatic-ppdopts filename.ppd printer-id\n";
|
|
Tim Waugh |
b9b53f |
print "\n";
|
|
Tim Waugh |
b9b53f |
exit(1);
|
|
Tim Waugh |
b9b53f |
}
|