?? hpijs-ppd
字號:
#!/usr/bin/perl## hpijs-ppd - Generates all hpijs ppd files from the foomatic database.## Copyright (c) 2003, Hewlett-Packard Co.# All rights reserved.## Redistribution and use in source and binary forms, with or without# modification, are permitted provided that the following conditions# are met:# 1. Redistributions of source code must retain the above copyright# notice, this list of conditions and the following disclaimer.# 2. Redistributions in binary form must reproduce the above copyright# notice, this list of conditions and the following disclaimer in the# documentation and/or other materials provided with the distribution.# 3. Neither the name of the Hewlett-Packard nor the names of its# contributors may be used to endorse or promote products derived# from this software without specific prior written permission.## THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT# NOT LIMITED TO, PATENT INFRINGEMENT; PROCUREMENT OF SUBSTITUTE GOODS OR# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING# IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE# POSSIBILITY OF SUCH DAMAGE.## Author: David Suffield <david.suffield@hp.com>## Usage:# ./hpijs-ppd ## Description: # This script will generate all the hpijs ppd files from the foomatic# database. All ppd files are generated from # foomatic-db-hpijs/data-generators/hpijs/hpijs-printermap which is part# of the foomatic system at www.linuxprinting.org. #$inputfile = "foomatic-db-hpijs/data-generators/hpijs/hpijs-printermap";$ppddir = "ppd";$ppdcmd = "foomatic-db-engine/foomatic-ppdfile";$pat = "Manufacturer:(.*)\"(HEWLETT-PACKARD|Hewlett-Packard)\"";$new = "Manufacturer: \"HP\"";if (!defined($ppddir)){ die "no package name\n";}# Remove any ppd directory.$cmd = "rm -rf $ppddir";system($cmd);# Create ppd directory.mkdir $ppddir;open(INPUT, $inputfile) or die "Error while opening $inputfile: $!\n";while(<INPUT>){ if ($_ =~ /(^HP-)/) { ($id) = split(/\|/, $_); $outputFile = "$ppddir/$id-hpijs.ppd"; $cmd = "$ppdcmd -d hpijs -p $id >$outputFile"; print(STDOUT "$cmd\n"); if (system($cmd) != 0) { die "system $cmd failed: $?"; } # Change Manufacturer: HEWLETT-PACKARD to HP. $docstring = ""; open(PPDFILE, $outputFile) or die "Error while opening $outputFile: $!\n"; while(<PPDFILE>) { $docstring = $docstring . $_; } close PPDFILE; if ($docstring =~ s/$pat/$new/) { print(STDOUT "found pattern in $outputFile\n"); unlink $outputFile; open(PPDFILE, ">$outputFile") or die "Error while opening $outputFile: $!\n"; print(PPDFILE $docstring); close PPDFILE; } }}close INPUT;print(STDOUT "Done creating hpijs ppd files.\n");
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -