diff options
Diffstat (limited to 'perl-install/printer')
-rw-r--r-- | perl-install/printer/common.pm | 21 | ||||
-rw-r--r-- | perl-install/printer/office.pm | 85 |
2 files changed, 50 insertions, 56 deletions
diff --git a/perl-install/printer/common.pm b/perl-install/printer/common.pm index 13e5919f9..5e65340d5 100644 --- a/perl-install/printer/common.pm +++ b/perl-install/printer/common.pm @@ -1,6 +1,10 @@ package printer::common; use strict; +use vars qw(@ISA @EXPORT); + +@ISA = qw(Exporter); +@EXPORT = qw(addentry addsection removeentry removesection); sub addentry { @@ -10,9 +14,7 @@ sub addentry { my @lines = split("\n", $filecontent); foreach (@lines) { if (!$sectionfound) { - if (/^\s*\[\s*$section\s*\]\s*$/) { - $sectionfound = 1; - } + $sectionfound = 1 if /^\s*\[\s*$section\s*\]\s*$/; } else { if (!/^\s*$/ && !/^\s*;/) { #-# $_ = "$entry\n$_"; @@ -21,9 +23,7 @@ sub addentry { } } } - if ($sectionfound && !$entryinserted) { - push(@lines, $entry); - } + push(@lines, $entry) if $sectionfound && !$entryinserted; return join ("\n", @lines); } @@ -32,10 +32,8 @@ sub addsection { my $entryinserted = 0; my @lines = split("\n", $filecontent); foreach (@lines) { - if (/^\s*\[\s*$section\s*\]\s*$/) { - # section already there, nothing to be done - return $filecontent; - } + # section already there, nothing to be done + return $filecontent if /^\s*\[\s*$section\s*\]\s*$/; } return $filecontent . "\n[$section]"; } @@ -49,8 +47,7 @@ sub removeentry { $_ = "$_\n"; next if $done; if (!$sectionfound) { - if (/^\s*\[\s*$section\s*\]\s*$/) { - $sectionfound = 1; + $sectionfound = 1 if /^\s*\[\s*$section\s*\]\s*$/; } } else { if (/^\s*\[.*\]\s*$/) { # Next section diff --git a/perl-install/printer/office.pm b/perl-install/printer/office.pm index d5be027cf..684707ce8 100644 --- a/perl-install/printer/office.pm +++ b/perl-install/printer/office.pm @@ -91,15 +91,13 @@ sub configureoffice { } } $configfilecontent = - $suites{$suite}{make}($printer, $queue, $configprefix, - $configfilecontent); + $suites{$suite}{make}($printer, $queue, $configprefix, $configfilecontent); } # Patch PostScript output to print Euro symbol correctly also for # the "Generic Printer" my @parameters = $suites{$suite}{param}; - $configfilecontent =printer::common::removeentry - (@parameters, $configfilecontent); - $configfilecontent =printer::common::addentry($parameters[0],$parameters[1] . $suites{$suite}{perl} . $printer::data::lprcommand{$printer->{SPOOLER}{print_command}}, $configfilecontent); + $configfilecontent = removeentry(@parameters, $configfilecontent); + $configfilecontent =addentry($parameters[0],$parameters[1] . $suites{$suite}{perl} . $printer::data::lprcommand{$printer->{SPOOLER}{print_command}}, $configfilecontent); # Write back Star Office configuration file return writesofficeconfigfile($configfilename, $configfilecontent); } @@ -183,8 +181,7 @@ sub remove_local_printers_from_office { # Remove the printer entries foreach my $queue (keys(%{$printer->{configured}})) { $configfilecontent = - removestarofficeprinterentry($printer, $queue, $configprefix, - $configfilecontent); + removestarofficeprinterentry($printer, $queue, $configprefix, $configfilecontent); } # Write back Star Office configuration file return writesofficeconfigfile($configfilename, $configfilecontent); @@ -195,25 +192,25 @@ sub makestarofficeprinterentry { my ($printer, $queue, $configprefix, $configfile) = @_; # Set default printer if ($queue eq $printer->{DEFAULT}) { - $configfile =printer::common::removeentry("windows", "device=", $configfile); - $configfile =printer::common::addentry("windows", + $configfile =removeentry("windows", "device=", $configfile); + $configfile =addentry("windows", "device=$queue,$queue PostScript,$queue", $configfile); } # Make an entry in the "[devices]" section - $configfile =printer::common::removeentry("devices", "$queue=", $configfile); - $configfile =printer::common::addentry("devices", + $configfile =removeentry("devices", "$queue=", $configfile); + $configfile =addentry("devices", "$queue=$queue PostScript,$queue", $configfile); # Make an entry in the "[ports]" section # The "perl" command patches the PostScript output to print the Euro # symbol correctly. - $configfile =printer::common::removeentry("ports", "$queue=", $configfile); - $configfile =printer::common::addentry("ports", + $configfile =removeentry("ports", "$queue=", $configfile); + $configfile =addentry("ports", "$queue=/usr/bin/perl -p -e \"s=16#80 /euro=16#80 /Euro=\" | /usr/bin/$printer::data::lprcommand{$printer->{SPOOLER}{print_command}} -P $queue", $configfile); # Make printer's section - $configfile = printer::common::addsection("$queue,PostScript,$queue", $configfile); + $configfile = addsection("$queue,PostScript,$queue", $configfile); # Load PPD file my $ppd = cat_("$::prefix/etc/foomatic/$queue.ppd"); # Set the PostScript level @@ -222,21 +219,21 @@ sub makestarofficeprinterentry { $pslevel = $1; $pslevel = "2" if $pslevel eq "3"; } else { $pslevel = "2" } - $configfile =printer::common::removeentry("$queue.PostScript.$queue", + $configfile =removeentry("$queue.PostScript.$queue", "Level=", $configfile); - $configfile =printer::common::addentry("$queue.PostScript.$queue", + $configfile =addentry("$queue.PostScript.$queue", "Level=$pslevel", $configfile); # Set Color/BW my $color = ($ppd =~ /^\s*\*ColorDevice:\s*\"?([Tt]rue)\"?\s*$/m) ? "1" : "0"; - $configfile =printer::common::removeentry("$queue.PostScript.$queue", "BitmapColor=", $configfile); - $configfile =printer::common::addentry("$queue.PostScript.$queue", "BitmapColor=$color", $configfile); + $configfile =removeentry("$queue.PostScript.$queue", "BitmapColor=", $configfile); + $configfile =addentry("$queue.PostScript.$queue", "BitmapColor=$color", $configfile); # Set the default paper size if ($ppd =~ /^\s*\*DefaultPageSize:\s*(\S+)\s*$/m) { my $papersize = $1; - $configfile =printer::common::removeentry("$queue.PostScript.$queue", "PageSize=", $configfile); - $configfile =printer::common::removeentry("$queue.PostScript.$queue", "PPD_PageSize=", $configfile); - $configfile =printer::common::addentry("$queue.PostScript.$queue", "PageSize=$papersize", $configfile); - $configfile =printer::common::addentry("$queue.PostScript.$queue", "PPD_PageSize=$papersize", $configfile); + $configfile =removeentry("$queue.PostScript.$queue", "PageSize=", $configfile); + $configfile =removeentry("$queue.PostScript.$queue", "PPD_PageSize=", $configfile); + $configfile =addentry("$queue.PostScript.$queue", "PageSize=$papersize", $configfile); + $configfile =addentry("$queue.PostScript.$queue", "PPD_PageSize=$papersize", $configfile); } # Link the PPD file run_program::rooted($::prefix, @@ -248,64 +245,64 @@ sub makestarofficeprinterentry { sub makeopenofficeprinterentry { my ($printer, $queue, $configprefix, $configfile) = @_; # Make printer's section - $configfile = printer::common::addsection($queue, $configfile); + $configfile = addsection($queue, $configfile); # Load PPD file my $ppd = cat_("$::prefix/etc/foomatic/$queue.ppd"); # "PPD_PageSize" line if ($ppd =~ /^\s*\*DefaultPageSize:\s*(\S+)\s*$/m) { my $papersize = $1; - $configfile = printer::common::removeentry($queue, + $configfile = removeentry($queue, "PPD_PageSize=", $configfile); - $configfile = printer::common::addentry($queue, + $configfile = addentry($queue, "PPD_PageSize=$papersize", $configfile); } # "Command" line # The "perl" command patches the PostScript output to print the Euro # symbol correctly. - $configfile = printer::common::removeentry($queue, "Command=", $configfile); - $configfile = printer::common::addentry($queue, + $configfile = removeentry($queue, "Command=", $configfile); + $configfile = addentry($queue, "Command=/usr/bin/perl -p -e \"s=/euro /unused=/Euro /unused=\" | /usr/bin/$printer::data::lprcommand{$printer->{SPOOLER}{print_command}} -P $queue", $configfile); # "Comment" line - $configfile = printer::common::removeentry($queue, "Comment=", $configfile); + $configfile = removeentry($queue, "Comment=", $configfile); if (($printer->{configured}{$queue}) && ($printer->{configured}{$queue}{queuedata}{desc})) { - $configfile =printer::common::addentry + $configfile =addentry ($queue, "Comment=$printer->{configured}{$queue}{queuedata}{desc}", $configfile); } else { - $configfile = printer::common::addentry($queue, + $configfile = addentry($queue, "Comment=", $configfile); } # "Location" line - $configfile = printer::common::removeentry($queue, "Location=", $configfile); + $configfile = removeentry($queue, "Location=", $configfile); if (($printer->{configured}{$queue}) && ($printer->{configured}{$queue}{queuedata}{loc})) { - $configfile = printer::common::addentry + $configfile = addentry ($queue, "Location=$printer->{configured}{$queue}{queuedata}{loc}", $configfile); } else { - $configfile = printer::common::addentry($queue, "Location=", $configfile); + $configfile = addentry($queue, "Location=", $configfile); } # "DefaultPrinter" line - $configfile = printer::common::removeentry($queue, "DefaultPrinter=", $configfile); + $configfile = removeentry($queue, "DefaultPrinter=", $configfile); my $default = "0"; if ($queue eq $printer->{DEFAULT}) { $default = "1"; # "DefaultPrinter=0" for the "Generic Printer" - $configfile = printer::common::removeentry("Generic Printer", "DefaultPrinter=", + $configfile = removeentry("Generic Printer", "DefaultPrinter=", $configfile); - $configfile = printer::common::addentry("Generic Printer", + $configfile = addentry("Generic Printer", "DefaultPrinter=0", $configfile); } - $configfile = printer::common::addentry($queue, "DefaultPrinter=$default", $configfile); + $configfile = addentry($queue, "DefaultPrinter=$default", $configfile); # "Printer" line - $configfile = printer::common::removeentry($queue, "Printer=", $configfile); - $configfile = printer::common::addentry($queue, "Printer=$queue/$queue", $configfile); + $configfile = removeentry($queue, "Printer=", $configfile); + $configfile = addentry($queue, "Printer=$queue/$queue", $configfile); # Link the PPD file run_program::rooted($::prefix, "ln", "-sf", "/etc/foomatic/$queue.ppd", @@ -316,13 +313,13 @@ sub makeopenofficeprinterentry { sub removestarofficeprinterentry { my ($printer, $queue, $configprefix, $configfile) = @_; # Remove default printer entry - $configfile = printer::common::removeentry("windows", "device=$queue,", $configfile); + $configfile = removeentry("windows", "device=$queue,", $configfile); # Remove entry in the "[devices]" section - $configfile = printer::common::removeentry("devices", "$queue=", $configfile); + $configfile = removeentry("devices", "$queue=", $configfile); # Remove entry in the "[ports]" section - $configfile = printer::common::removeentry("ports", "$queue=", $configfile); + $configfile = removeentry("ports", "$queue=", $configfile); # Remove "[$queue,PostScript,$queue]" section - $configfile = printer::common::removesection("$queue,PostScript,$queue", $configfile); + $configfile = removesection("$queue,PostScript,$queue", $configfile); # Remove Link of PPD file run_program::rooted($::prefix, "rm", "-f", @@ -333,7 +330,7 @@ sub removestarofficeprinterentry { sub removeopenofficeprinterentry { my ($printer, $queue, $configprefix, $configfile) = @_; # Remove printer's section - $configfile = printer::common::removesection($queue, $configfile); + $configfile = removesection($queue, $configfile); # Remove Link of PPD file run_program::rooted($::prefix, "rm", "-f", |