1 | #!/usr/bin/perl
|
---|
2 | ## Add printer script for samba, APW, and cups
|
---|
3 | ## Copyright (C) Jeff Hardy <hardyjm@potsdam.edu> 2004
|
---|
4 | ##
|
---|
5 | ## This program is free software; you can redistribute it
|
---|
6 | ## and/or modify it under the terms of the GNU General
|
---|
7 | ## Public License as published by the Free Software Foundation;
|
---|
8 | ## ither version 2 of the License, or (at your option) any
|
---|
9 | ## later version.
|
---|
10 | ##
|
---|
11 | ## This program is distributed in the hope that it will be useful,
|
---|
12 | ## but WITHOUT ANY WARRANTY; without even the implied warranty of
|
---|
13 | ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
---|
14 | ## GNU General Public License for more details.
|
---|
15 | ##
|
---|
16 | ## You should have received a copy of the GNU General Public
|
---|
17 | ## License along with this program; if not, write to the Free
|
---|
18 | ## Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
|
---|
19 | ## USA.
|
---|
20 |
|
---|
21 | @argv = @ARGV;
|
---|
22 |
|
---|
23 | # take in args
|
---|
24 | my $lpname=shift(@argv); # printer name
|
---|
25 | my $shname=shift(@argv); # share name -> used for CUPS queue name
|
---|
26 | my $portname=shift(@argv); # port name
|
---|
27 | my $drivername=shift(@argv); # driver name -> used for CUPS description
|
---|
28 | my $location=shift(@argv); # location -> used for CUPS device URI
|
---|
29 | my $win9x=shift(@argv); # win9x location
|
---|
30 |
|
---|
31 | #check for location syntax
|
---|
32 | #if no protocol specified...
|
---|
33 | if ($location !~ m#:/#){
|
---|
34 | #assume an lpd printer
|
---|
35 | $location = "lpd://".$location;
|
---|
36 | }
|
---|
37 | #else, simply pass the URI on to the lpadmin command
|
---|
38 |
|
---|
39 | #run the cups lpadmin command to add the printer
|
---|
40 | system("/usr/sbin/lpadmin -p $shname -D \"$drivername\" -E -v $location");
|
---|
41 |
|
---|