summaryrefslogtreecommitdiffstats
path: root/perl-install/printer/cups.pm
diff options
context:
space:
mode:
authorPascal Rigaux <pixel@mandriva.com>2007-04-25 12:26:16 +0000
committerPascal Rigaux <pixel@mandriva.com>2007-04-25 12:26:16 +0000
commit126777bc019a54afb4ec51299f2cf9d2841698aa (patch)
tree97f76e571902ead55ba138f1156a4b4f00b9b779 /perl-install/printer/cups.pm
parentf1f67448efc714873378dfeb8279fae68054a90a (diff)
downloaddrakx-126777bc019a54afb4ec51299f2cf9d2841698aa.tar
drakx-126777bc019a54afb4ec51299f2cf9d2841698aa.tar.gz
drakx-126777bc019a54afb4ec51299f2cf9d2841698aa.tar.bz2
drakx-126777bc019a54afb4ec51299f2cf9d2841698aa.tar.xz
drakx-126777bc019a54afb4ec51299f2cf9d2841698aa.zip
re-sync after the big svn loss
Diffstat (limited to 'perl-install/printer/cups.pm')
-rw-r--r--perl-install/printer/cups.pm147
1 files changed, 0 insertions, 147 deletions
diff --git a/perl-install/printer/cups.pm b/perl-install/printer/cups.pm
deleted file mode 100644
index eb443482e..000000000
--- a/perl-install/printer/cups.pm
+++ /dev/null
@@ -1,147 +0,0 @@
-package printer::cups;
-
-use strict;
-
-use printer::data;
-use run_program;
-use common;
-
-
-#------------------------------------------------------------------------------
-
-sub lpstat_lpv() {
-
- # Get a list of remotely defined print queues, with "Description" and
- # "Location"
-
- # Info to return
- my @items;
-
- # Hash to simplify the adding of the URIs
- my $itemshash;
-
- # Run the "lpstat" command in a mode to give as much info about the
- # print queues as possible
- my @lpstat = run_program::rooted_get_stdout
- ($::prefix, 'lpstat', '-l', '-p', '-v');
-
- my $currentitem = -1;
- for my $line (@lpstat) {
- chomp($line);
- if ($line !~ m!^\s*$!) {
- if ($line =~ m!^printer\s+(\S+)\s+.*\b(enabled|disabled)\b!) {
- # Beginning of new printer's entry
- my $name = $1;
- my $state = $2;
- push(@items, {});
- $currentitem = $#items;
- $itemshash->{$name} = $currentitem;
- $items[$currentitem]{queuename} ||= $name;
- $items[$currentitem]{state} ||= $state;
- } elsif ($line =~ m!^\s+Description:\s+(\S.*)$!) {
- # Description field
- if ($currentitem != -1) {
- $items[$currentitem]{description} ||= $1;
- }
- } elsif ($line =~ m!^\s+Location:\s+(\S.*)$!) {
- # Location field
- if ($currentitem != -1) {
- $items[$currentitem]{location} ||= $1;
- }
- } elsif ($line =~ m!^device\s+for\s+(\S+):\s+(\S.*)$!) {
- # "device for ..." line, extract URI
- my $name = $1;
- my $uri = $2;
- if (defined($itemshash->{$name})) {
- if ($uri !~ /:/) { $uri = "file:" . $uri }
- $currentitem = $itemshash->{$name};
- if (($currentitem <= $#items) &&
- ($items[$currentitem]{queuename} eq $name)) {
- $items[$currentitem]{uri} ||= $uri;
- if ($uri =~ m!^ipp://([^/:]+)[:/]!) {
- $items[$currentitem]{ipp} = $1;
- }
- }
- }
- }
- }
- }
- return @items;
-}
-
-sub lpstat_v() {
- map {
- if (my ($queuename, $uri) = m/^\s*device\s+for\s+([^:\s]+):\s*(\S+)\s*$/) {
- +{ queuename => $queuename, uri => $uri, if_($uri =~ m!^ipp://([^/:]+)[:/]!, ipp => $1) };
- } else {
- ();
- }
- } run_program::rooted_get_stdout($::prefix, 'lpstat', '-v');
-}
-
-sub lpinfo_v() {
- map {
- if (my ($type, $uri) = m/^\s*(\S+)\s+(\S+)\b/) {
- if ($uri =~ m!:/!) {
- $uri;
- } elsif ($type =~ m/network/i) {
- "$uri://";
- } else {
- "$uri:/";
- }
- } else {
- ();
- }
- } run_program::rooted_get_stdout($::prefix, 'lpinfo', '-v');
-}
-
-sub read_printer_list {
- my ($printer) = @_;
- # This function reads in a list of all printers which the local CUPS
- # daemon currently knows, including remote ones.
- map {
- my $comment =
- $_->{ipp} && !$printer->{configured}{$_->{queuename}} ?
- N("(on %s)", $_->{ipp}) : N("(on this machine)");
- "$_->{queuename} $comment";
- } lpstat_v();
-}
-
-sub get_formatted_remote_queues {
- my ($printer) = @_;
-
- # This function reads in a list of all remote printers which the local
- # CUPS daemon knows due to broadcasting of remote servers or
- # "BrowsePoll" entries in the local /etc/cups/cupsd.conf/
- map {
- join('!', if_($printer->{expert}, N("CUPS")), N("Configured on other machines"), $_);
- } map {
- my $comment = N("On CUPS server \"%s\"", ($_->{ipp} ? $_->{ipp} : $printer->{remote_cups_server})) . ($_->{queuename} eq $printer->{DEFAULT} ? N(" (Default)") : "");
- "$_->{queuename}: $comment";
- } grep {
- !$printer->{configured}{$_->{queuename}};
- } lpstat_v();
-}
-
-sub get_remote_queues {
- my ($printer) = @_;
- # The following code reads in a list of all remote printers which the
- # local CUPS daemon knows due to broadcasting of remote servers or
- # "BrowsePoll" entries in the local /etc/cups/cupsd.conf
- map {
- "$_->{queuename}|$_->{ipp}";
- } grep {
- $_->{ipp} && !$printer->{configured}{$_->{queuename}};
- } lpstat_v();
-}
-
-sub queue_enabled {
- my ($queue) = @_;
- 0 != grep {
- /\b$queue\b.*\benabled\b/i;
- } run_program::rooted_get_stdout($::prefix, 'lpstat', '-p', $queue);
-}
-
-
-
-1;