Changes in client/bin/gbq [9dee329:fc8707b]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
client/bin/gbq
r9dee329 rfc8707b 1 1 #!/usr/bin/perl 2 2 3 # Written by Jessica Hamrick (C) 2010 3 # This script was largely written by Jessica Hamrick (jhamrick), with 4 # help from Kyle Brogle (broglek) 4 5 5 6 use strict; … … 10 11 use Getopt::Long; 11 12 12 my $usage = "Usage: gbq [-q QUEUE]\n"; 13 # usage 14 my $usage = <<USAGE; 15 Usage: gbq [options] [-q QUEUE] 13 16 17 -q, --queue Specify a queue other than the default 18 -h, --help Print this message 19 USAGE 20 21 # initialize the variables for the options 14 22 my $q = ""; 15 GetOptions ('q|queue=s' => \$q);23 my $help = 0; 16 24 25 # parse the options 26 GetOptions ('q|queue=s' => \$q, 27 'h|help' => \$help); 28 29 # if the -h flag was passed, then print the usage and exit 30 if ($help) { 31 print $usage; 32 exit 0; 33 } 34 35 # if the -q option is not specified, then assume we're using the 36 # default queue 17 37 if (!$q) { 18 38 $q = "DEFAULT"; 19 39 } 20 40 41 # set configuration path, and complain if it doesn't exist 21 42 my $configpath = "$ENV{'HOME'}/.gutenbach/$q"; 22 43 if (! -e $configpath) { … … 25 46 } 26 47 48 # initialize the host and queue variables: host holds the address for 49 # the machine on which the remote queue runs, and queue holds the name 50 # of the printer 27 51 my ($host, $queue); 28 52 53 # load the configuration file (this will set $host and $queue) 29 54 if (-r $configpath) { 30 55 local $/; … … 34 59 } 35 60 61 # initialize a new CUPS session 36 62 my $cups = Net::CUPS->new(); 63 # set the server to the one specified in the config file 37 64 $cups->setServer("$host"); 65 # set the printer name to the one specified in the config file 38 66 my $printer = $cups->getDestination("$queue"); 39 67 68 # if $printer is not defined, then throw an error 40 69 unless( $printer){ 41 70 print "Cannot access queue $q...do you have network connectivity and permission to view the queue?\n"; 42 71 exit 1; 43 72 } 73 74 # print pretty headings and stuff 44 75 print "Queue listing for queue '$queue' on '$host'\n\n"; 45 76 printf ("%-8s%-15s%s\n","Job","Owner","Title"); 46 77 print "-"x70 . "\n"; 78 79 # get the list of jobs from the printer 47 80 my @jobs = $printer->getJobs(0, 0); 81 82 # initialize the job reference and job id variables 48 83 my ($job_ref, $jobid); 49 84 85 # for each job in the list of jobs: 50 86 foreach $jobid(@jobs) 51 87 { 52 $job_ref = $printer->getJob($jobid); 53 my $id = $job_ref->{'id'}; 54 my $user = $job_ref->{'user'}; 55 my $title = $job_ref->{'title'}; 88 # get the reference to the job (so we can get various related 89 # variables) 90 $job_ref = $printer->getJob($jobid); 56 91 57 printf ("%-8s%-15s%s\n","$id",substr("$user",0,15),substr("$title",0,47)); 92 # get the id of the job 93 my $id = $job_ref->{'id'}; 94 # get the user who printed the job 95 my $user = $job_ref->{'user'}; 96 # get the title of the job 97 my $title = $job_ref->{'title'}; 98 99 # print the job information to the screen 100 printf ("%-8s%-15s%s\n","$id",substr("$user",0,15),substr("$title",0,47)); 58 101 }
Note: See TracChangeset
for help on using the changeset viewer.