%PDF- %PDF-
Direktori : /sbin/ |
Current File : //sbin/getweb |
#!/bin/sh set -e # # (c) Copyright Rick Richardson 2008 # This version has been modified by Debian # # PLEASE don't remove the copyright statements. They should # be displayed to the human that is running this. # VERSION='$Id: getweb.in,v 1.114 2015/02/12 00:22:02 rick Exp $' WGETOPTS="--passive-ftp -q" ARM2HPDL="/usr/bin/arm2hpdl" if [ $(id -ru) -ne 0 ]; then echo "You need to be root" exit 1 fi usage() { cat <<EOF Usage: ./getweb something Convenience script to get extra somethings from the web, such as ICC color profiles, firmware, PPD files, etc. $ ./getweb 1025 # Get HP LaserJet Pro CP1025nw .ICM files $ ./getweb 1215 # Get HP Color LaserJet CP1215 .ICM files $ ./getweb 1500 # Get HP Color LaserJet 1500 .ICM files $ ./getweb 1600 # Get HP Color LaserJet 1600 .ICM files $ ./getweb 2600n # Get HP Color LaserJet 2600n .ICM files $ ./getweb 1600w # Get Konica Minolta 1600W .ICM files $ ./getweb 1680 # Get Konica Minolta 1680MF .ICM files $ ./getweb 1690 # Get Konica Minolta 1690MF .ICM files $ ./getweb 2480 # Get Konica Minolta 2480 MF .ICM files $ ./getweb 2490 # Get Konica Minolta 2490 MF .ICM files $ ./getweb 2530 # Get Konica Minolta 2530 DL .ICM files $ ./getweb 4690 # Get Konica Minolta 4690MF .ICM files $ ./getweb 6115 # Get Xerox Phaser 6115MFP .ICM files $ ./getweb 110 # Get Oki C110 .ICM files $ ./getweb 6121 # Get Xerox Phaser 6121MFP .ICM files $ ./getweb 2200 # Get Minolta 2200 DL .ICM files $ ./getweb 2300 # Get Minolta 2300 DL .ICM files $ ./getweb 2430 # Get Konica Minolta 2430 DL .ICM files $ ./getweb cpwl # Get Minolta Color PageWorks/Pro L .ICM files $ ./getweb 300 # Get Samsung CLP-300 .ICM files $ ./getweb 310 # Get Samsung CLP-310 .ICM files $ ./getweb 315 # Get Samsung CLP-315 .ICM files $ ./getweb 325 # Get Samsung CLP-325 .ICM files $ ./getweb 360 # Get Samsung CLP-360 .ICM files $ ./getweb 365 # Get Samsung CLP-365 .ICM files $ ./getweb 600 # Get Samsung CLP-600 .ICM files $ ./getweb 610 # Get Samsung CLP-610 .ICM files $ ./getweb 2160 # Get Samsung CLX-2160 .ICM files $ ./getweb 3160 # Get Samsung CLX-3160 .ICM files $ ./getweb 3175 # Get Samsung CLX-3175 .ICM files $ ./getweb 3185 # Get Samsung CLX-3185 .ICM files $ ./getweb 6110 # Get Xerox Phaser 6110 and 6110MFP .ICM files $ ./getweb 500 # Get Lexmark C500 .ICM files $ ./getweb 301 # Get Oki C301dn .ICM files $ ./getweb c310 # Get Oki C310dn .ICM files $ ./getweb c511 # Get Oki C511dn .ICM files $ ./getweb c810 # Get Oki C810 .ICM files $ ./getweb 3100 # Get Oki C3100 .ICM files $ ./getweb 3200 # Get Oki C3200 .ICM files $ ./getweb 3300 # Get Oki C3300 .ICM files $ ./getweb 3400 # Get Oki C3400 .ICM files $ ./getweb 3530 # Get Oki C3530 MFP .ICM files $ ./getweb 5100 # Get Oki C5100 / C5150n .ICM files $ ./getweb 5200 # Get Oki C5200 .ICM files $ ./getweb 5500 # Get Oki C5500 .ICM files $ ./getweb 5600 # Get Oki C5600 .ICM files $ ./getweb 5800 # Get Oki C5800 .ICM files $ ./getweb 160 # Get Olivetti d-Color P160W .ICM files $ ./getweb 1000 # Get HP LJ 1000 firmware file $ ./getweb 1005 # Get HP LJ 1005 firmware file $ ./getweb 1018 # Get HP LJ 1018 firmware file $ ./getweb 1020 # Get HP LJ 1020 firmware file $ ./getweb p1005 # Get HP LJ P1005 firmware file $ ./getweb p1006 # Get HP LJ P1006 firmware file $ ./getweb p1007 # Get HP LJ P1007 firmware file $ ./getweb p1008 # Get HP LJ P1008 firmware file $ ./getweb p1505 # Get HP LJ P1505 firmware file $ ./getweb all # Get everything above $ ./getweb 2300dl_fw # Get Minolta 2300DL v2.55 firmware (experts only) EOF exit 1 } # # Report an error and exit # PROGNAME=$0 error() { echo "`basename $PROGNAME`: $1" >&2 exit 1 } SYSTEM=`uname -s` WGET=`which wget` if [ "$SYSTEM" = Darwin -a "$WGET" = "" ] then WGETOPTS= wget() { shift curl -o $* } fi putfw() { inputname=$1 outputname=$2 $ARM2HPDL $inputname > /var/lib/foo2zjs/firmware/$outputname rm $inputname } puticm() { drivername=$1 icmfolder=/usr/share/"$drivername"/icm/ [ -d $icmfolder ] || mkdir -p $icmfolder mv *.icm $icmfolder } # # Download a .EXE file from the web, unzip it, and extract the # files we want getexe() { url="$1" exefile="$2" shift; shift wget $WGETOPTS -O $exefile "$url/$exefile" || error "Couldn't download $url/$exefile" unzip -oj $exefile "$@" rm $exefile } # # Download a .tar.gz file from the web, untar it, and extract the # files we want gettgz() { url="$1" file="$2" what="$3" wget $WGETOPTS -O $file "$url/$file" || error "Couldn't download $url/$file" gunzip <$file | tar xvf - $what rm $file } copyright() { echo echo "$1" echo } getone() { case "$1" in lj1000|1000) gettgz \ https://www.quirinux.org/printers sihp1000.tar.gz \ "" #echo "provided" #getexe \ #ftp://ftp.hp.com/pub/softlib/software1/lj1488/lj-1145-2 \ #lj1488en.exe \ #sihp1000.img copyright "(c) Copyright Hewlett-Packard 2001" putfw sihp1000.img sihp1000.dl ;; lj1005|1005) gettgz \ https://www.quirinux.org/printers sihp1005.tar.gz \ "" #echo "provided" #getexe \ #ftp://ftp.hp.com/pub/softlib/software2/COL2222/lj-10067-2 \ #lj1005hostbased-en.exe \ #sihp1005.img copyright "(c) Copyright Hewlett-Packard 2002" gettgz \ https://www.quirinux.org/printers sihpP1005.tar.gz \ "" copyright "(c) Copyright Hewlett-Packard 2009" putfw sihp1005.img sihp1005.dl ;; lj1018|1018) gettgz \ https://www.quirinux.org/printers sihp1018.tar.gz \ "" copyright "(c) Copyright Hewlett-Packard 2005" putfw sihp1018.img sihp1018.dl ;; lj1020|1020) # http://ftp.hp.com/pub/softlib/software8/COL14041/lj-39322-2/hp_LJ_1020-1022_Full_Solution.exe gettgz \ https://www.quirinux.org/printers sihp1020.tar.gz \ "" copyright "(c) Copyright Hewlett-Packard 2005" putfw sihp1020.img sihp1020.dl ;; [pP]100[57]) gettgz \ https://www.quirinux.org/printers sihpP1005.tar.gz \ "" copyright "(c) Copyright Hewlett-Packard 2009" putfw sihpP1005.img sihpP1005.dl ;; [pP]100[68]) gettgz \ https://www.quirinux.org/printers sihpP1006.tar.gz \ "" copyright "(c) Copyright Hewlett-Packard 2009" putfw sihpP1006.img sihpP1006.dl ;; [pP]1505) gettgz \ https://www.quirinux.org/printers sihpP1505.tar.gz \ "" copyright "(c) Copyright Hewlett-Packard 2009" putfw sihpP1505.img sihpP1505.dl ;; 2200dl|2200) if true; then gettgz \ https://www.quirinux.org/printers dl2300.tar.gz \ "" else getexe \ http://printer.konicaminolta.net/drivers/win2000 m22dlicc.exe \ "*.icm" fi copyright "(c) Copyright Minolta-QMS 1999" puticm foo2zjs ;; 2300dl|2300) if true; then gettgz \ https://www.quirinux.org/printers dl2300.tar.gz \ "" else getexe \ http://printer.konicaminolta.net/drivers/other m23dlicc.exe \ "*.icm" fi gettgz \ https://www.quirinux.org/printers km2430.tar.gz \ "" copyright "(c) Copyright Minolta-QMS 2001" puticm foo2zjs ;; 2300dl_fw) # 2300DL firmware upgrade to v2.55 BASE="http://crm01.minoltaeurope.com" BASE="$BASE/openmind/technic/swfw/mswprtdl.nsf/logdwl" FILE="MC2300DL_v255.zip" URL="$BASE?openagent&4CE486C20839C75AC1256D9E001EBD1F/\$File/$FILE" wget $WGETOPTS "$URL" || error "Couldn't download $URL" echo "*** Now use a windows box to unzip and install $FILE ***" ;; cpwl|pageworks) if true; then gettgz \ https://www.quirinux.org/printers dl2300.tar.gz \ "" else getexe \ ftp://ftp.minolta-qms.com/pub/crc/out_going/windows cpplxp.exe \ "*.IC_" for i in C*.IC_ do base=`basename $i .IC_` mv $base.IC_ $base.ic_ ./msexpand $base.ic_ rm -f $base.ic_ done fi copyright "(c) Copyright Minolta-QMS 1998" puticm foo2zjs ;; 2430) gettgz \ https://www.quirinux.org/printers km2430.tar.gz \ "" copyright "(c) Copyright Konica Minolta 2003" puticm foo2zjs ;; 2530|2490|6115|2480|1600w|1680|1690|4690|110|6121) gettgz \ https://www.quirinux.org/printers km2530.tar.gz \ "" copyright "(c) Copyright Konica Minolta 2005" copyright "(c) Copyright Rick Richardson 2007. All Rights Reserved" gettgz \ https://www.quirinux.org/printers km-1600.tar.gz \ "" copyright "(c) Copyright Rick Richardson 2009. All Rights Reserved" puticm foo2lava ;; 1500) gettgz \ https://www.quirinux.org/printers hpclj2500.tar.gz \ "" copyright "(c) Copyright Hewlett-Packard 2002" gettgz \ https://www.quirinux.org/printers hpclj2600n.tar.gz \ "" copyright "(c) Copyright Hewlett-Packard 2003" copyright "(c) Copyright Rick Richardson 2006. All Rights Reserved" puticm foo2oak ;; 1025) gettgz \ https://www.quirinux.org/printer hp-cp1025.tar.gz \ "" copyright "(c) Copyright Rick Richardson 2010. All Rights Reserved" puticm foo2zjs ;; 1215|1600|2600*) gettgz \ https://www.quirinux.org/printer hpclj2600n.tar.gz \ "" gettgz \ https://www.quirinux.org/printer km2430.tar.gz \ "km2430_2.icm" copyright "(c) Copyright Hewlett-Packard 2003" copyright "(c) Copyright Rick Richardson 2006. All Rights Reserved" gettgz \ https://www.quirinux.org/printer hp1215.tar.gz \ "" copyright "(c) Copyright Rick Richardson 2008. All Rights Reserved" puticm foo2hp ;; 300|310|315|325|360|365|2160|3160|3175|3185|6110) gettgz \ https://www.quirinux.org/printer samclp300.tar.gz \ "" copyright "(c) Copyright Rick Richardson 2007. All Rights Reserved" gettgz \ https://www.quirinux.org/printer samclp315.tar.gz \ "" copyright "(c) Copyright Rick Richardson 2008. All Rights Reserved" puticm foo2qpdl ;; 600|610) ;; 500) gettgz \ https://www.quirinux.org/printer lexc500.tar.gz \ "" copyright "(c) Copyright Lexmark 2006" puticm foo2slx ;; oki) echo "Please wait, ~20MB is being downloaded from a slow site..." getexe \ http://www.okiprintingsolutions.at/binaryData/16516/ \ ICCProfiles.zip \ "*OK3200*ICM" "*OK5600*ICM" "*rom732*7.zip" unzip -oj *rom732*7.zip "*C3400*ICM" rm -f *rom732*7.zip for i in OK*ICM C3400*ICM; do base=`basename $i .ICM` mv "$base.ICM" "$base.icm" done copyright "(c) Copyright Okidata 2005, 2006" puticm foo2hiperc ;; 301) gettgz \ https://www.quirinux.org/printer okic301.tar.gz \ "" copyright "(c) Copyright Okidata 2012" puticm foo2hiperc ;; c310) gettgz \ https://www.quirinux.org/printer okic310.tar.gz \ "" copyright "(c) Copyright Okidata 2010" puticm foo2hiperc ;; c511) gettgz \ https://www.quirinux.org/printer okic511.tar.gz \ "" copyright "(c) Copyright Okidata 2012" puticm foo2hiperc ;; c810) gettgz \ https://www.quirinux.org/printer okic810.tar.gz \ "" copyright "(c) Copyright Okidata 2012" puticm foo2hiperc ;; 3100|3200|5100|5150|5200|5250) gettgz \ https://www.quirinux.org/printer okic3200.tar.gz \ "" copyright "(c) Copyright Okidata 2005" puticm foo2hiperc ;; 3300|3400|3530) gettgz \ https://www.quirinux.org/printer okic3400.tar.gz \ "" copyright "(c) Copyright Okidata 2006" puticm foo2hiperc ;; 5500|5600|5800|160) gettgz \ https://www.quirinux.org/printer okic5600.tar.gz \ "" copyright "(c) Copyright Okidata 2006" puticm foo2hiperc ;; xPPD) # Snarf PPD files from linuxprinting [ -d PPD ] || mkdir PPD for i in foomatic-db/printer/*.xml do case "$i" in */Gen*) continue;; esac printer=`basename $i .xml` echo $printer case "$printer" in *1500*|*oak*) driver=foo2oak;; *) driver=foo2zjs;; esac URL="http://www.linuxprinting.org/ppd-o-matic.cgi" URL="$URL?driver=$driver&printer=$printer" URL="$URL&.submit=Generate+PPD+file" URL="$URL&show=1&.cgifields=shortgui&.cgifields=show" wget $WGETOPTS -O PPD/$printer.ppd "$URL" || error "Couldn't dowload $URL" done ;; ppd) # Generate PPD files using local tools [ -d PPD ] || mkdir PPD for i in foomatic-db/printer/*.xml do printer=`basename $i .xml` echo $printer case "$printer" in *M1005*|*M1120*) driver=foo2xqx;; *P1[05]0[56]*) driver=foo2xqx;; *P2014*) driver=foo2xqx;; *M1212*) driver=foo2xqx;; *1500*|*OAKT*) driver=foo2oak;; *1600*|*2600*) driver=foo2hp;; *1215*) driver=foo2hp;; *2530*|*24[89]0*) driver=foo2lava;; *6115*) driver=foo2lava;; *C110*) driver=foo2lava;; *C500*) driver=foo2slx;; *C3[234]00*) driver=foo2hiperc;; *C5[12568]00*) driver=foo2hiperc;; *CLP*|*CLX*|*6110*) driver=foo2qpdl;; *) driver=foo2zjs;; esac ENGINE=../foomatic/foomatic-db-engine PERL5LIB=$ENGINE/lib $ENGINE/foomatic-ppdfile \ -d $driver -p $printer \ > PPD/$printer.ppd # | sed -e 's/\(^\*NickName.*\)"/\1 (foo2zjs recommended)"/' done ;; "") usage ;; *) error "Don't know how to get extra stuff for printer $1" ;; esac } if [ $# = 0 ]; then echo "$VERSION" usage fi OLDPWD=`pwd` NEWPWD=`mktemp --tmpdir --directory foo2zjs.XXXXXX` cd "$NEWPWD" for i in $* do case "$1" in all) getone 1000 getone 1005 getone 1018 getone 1020 getone p1005 getone p1006 getone p1505 getone 2200 getone 2300 # getone 2430 already done # getone cpwl # file doesn't exist 1/28/08 getone 1500 getone 2600n # getone 1215 # already done getone 1025 getone 2530 getone 300 # getone 6110 already done getone 600 getone 500 getone 301 getone c310 getone c511 getone c810 getone 3200 getone 3400 getone 5600 ;; *) getone $i ;; esac done cd "$OLDPWD" rmdir "$NEWPWD"