#!/bin/tcsh cd "$0:h" ########################################################### # CHANGE MODE & GROUP ########################################################### if (-d '/Library/Printers/Canon') then chmod ug+w '/Library' chmod ug+w '/Library/Printers' chmod -R ug+w '/Library/Printers/Canon' endif ########################################################### # Cleanup resources ########################################################### rm -rf '/Applications/BJPrinterUtility' rm -rf '/Library/Printers/Canon/BJPrinter/Frameworks/BJStatus.framework/PrivateHeaders' rm -rf '/Library/Printers/Canon/BJPrinter/Frameworks/BJStatus.framework/Versions/C/PrivateHeaders' if (-d '/Library/Printers/Canon/BJPrinter/Frameworks') then set DEL_LIST = () set DEL_LIST = (`./bjinstallerutils3`) while ($#DEL_LIST) set DEL_ITEM = (`echo "$DEL_LIST[1]" | sed s/'-'/' '/g`) if (-e "$DEL_ITEM") then rm -r "$DEL_ITEM" endif shift DEL_LIST end endif ########################################################### # USB IOM ########################################################### set OS_VERSION = (`./getosversion`) if ("$OS_VERSION" >= 1024 && "$OS_VERSION" < 1030) then if(-f ./u30.tar.gz) then if(-d /System/Library/Printers/IOMs/USBIOM.plugin) then if (`./shouldupdateusbiom 3.0` != -1) then rm -r /System/Library/Printers/IOMs/USBIOM.plugin tar zxfp ./u30.tar.gz -C /System/Library/Printers/IOMs endif endif endif endif ########################################################### # Cleanup cache ########################################################### if("$OS_VERSION" < 1030) then ### Jaguar ### set IsQuiet = 0 while ($IsQuiet == 0) set PROCESS = (`ps ax | grep 'Print Center.app' | grep -v grep`) if ($#PROCESS == 0) then set IsQuiet = 1 else kill -9 "$PROCESS[1]" endif end rm -f ~/Library/Preferences/ByHost/com.apple.print.PrintCenter.*.plist else ### Panther ### set IsQuiet = 0 while ($IsQuiet == 0) set PROCESS = (`ps ax | grep 'Printer Setup Utility.app' | grep -v grep`) if ($#PROCESS == 0) then set IsQuiet = 1 else kill -9 "$PROCESS[1]" endif end rm -f /Users/*/Library/Preferences/ByHost/com.apple.print.Cache.*.plist rm -f /var/root/Library/Preferences/ByHost/com.apple.print.Cache.*.plist endif set EXTENSION_MODULES = (`egrep '/System/Library/Extensions' "$0:h"'/BundleVersions.plist'` ) if($#EXTENSION_MODULES) then rm -f '/System/Library/Extensions.kextcache' rm -f '/System/Library/Extensions.mkext' egrep '/System/Library/Extensions/BJUSBLoad.kext' "$0:h"'/BundleVersions.plist' >& /dev/null if ($status == 0) then kextload /System/Library/Extensions/BJUSBLoad.kext sleep 3 endif endif ########################################################### # GET DEVICE_ID ########################################################### set CURRENT_PATH = `pwd` set PACKAGE_PATH = "$CURRENT_PATH:s?/Contents/Resources??" set PACKAGE_NAME = `basename "$PACKAGE_PATH"` set PACKAGE_NAME = "$PACKAGE_NAME" @ RIGHT_CHR = $%PACKAGE_NAME - 8 set PRINTER_NAME = `echo "$PACKAGE_NAME" | cut -c1-$RIGHT_CHR` set QUEUE_NAME = `echo "$PRINTER_NAME" | sed s/'PIXUS iP'/'iP_'/g | sed s/'PIXUS '/'_'/g | sed s/'PIXMA '/''/g | sed s/'SELPHY '/''/g | sed s/'Canon '/''/g | sed s/' '/'_'/g` set DEVICE_ID = `echo "$PRINTER_NAME" | sed s/'PIXUS iP'/'iP_'/g | sed s/'PIXUS '/''/g | sed s/'PIXMA '/''/g | sed s/'SELPHY '/''/g | sed s/'Canon '/''/g` if ("$OS_VERSION" < 1030 || "$OS_VERSION" >= 1040) then set QUEUE_NAME = `echo "$QUEUE_NAME" | sed s/'BJC-'/'BJC_'/g` endif ########################################################### # For off line printers ########################################################### if("$OS_VERSION" >= 1030) then set BJFWPBM = 0 egrep 'BJFireWirePBM' "$0:h"'/BundleVersions.plist' >& /dev/null if ($status == 0) then set BJFWPBM = 1 endif set BJNPPBM = 0 egrep 'BJNetworkPBM' "$0:h"'/BundleVersions.plist' >& /dev/null if ($status == 0) then set BJNPPBM = 1 endif set TGT_COUNT = (`lpstat -a | grep -v '*' | grep -v '?' | grep -v ']' | grep -v '{' | grep -v '}' | grep -v '~' | grep "$QUEUE_NAME" | wc -l`) set COUNT = 1 set TGT_LIST = () while ("$COUNT" <= "$TGT_COUNT") set TGT_PPD = (`lpstat -a | grep -v '*' | grep -v '?' | grep -v ']' | grep -v '{' | grep -v '}' | grep -v '~' | grep "$QUEUE_NAME" | head -"$COUNT" | tail -1`) if($#TGT_PPD) then set TGT_LIST = ($TGT_LIST "$TGT_PPD[1]") endif @ COUNT++ end while ($#TGT_LIST) ./shoulddeletethequeue "$QUEUE_NAME" "$TGT_LIST[1]" if($status == 0) then lpadmin -x "$TGT_LIST[1]" endif shift TGT_LIST end rm -f '/System/Library/Frameworks/ApplicationServices.framework/Frameworks/PrintCore.framework/Resources/com.apple.pmcache.xml' endif ########################################################### # ExtDDI ########################################################### set MKDIR_LIST = ('Canon' 'Canon/BJPrinter' 'Canon/BJPrinter/ExtendedData' 'Canon/BJPrinter/Template' 'Canon/BJPrinter/DeviceInfo') while ($#MKDIR_LIST) if !(-d '/Library/Preferences/'"$MKDIR_LIST[1]") then mkdir '/Library/Preferences/'"$MKDIR_LIST[1]" endif chmod 777 '/Library/Preferences/'"$MKDIR_LIST[1]" shift MKDIR_LIST end rm -f '/Library/Preferences/Canon/BJPrinter/Template/'"$DEVICE_ID"'.xml' ########################################################### # Delete the queue ########################################################### set LOGINUSER = `logname` set MAKEQUEUES = '/System/Library/SystemConfiguration/PrinterNotifications.bundle/Contents/MacOS/makequeues' if (-f $MAKEQUEUES) then if("$OS_VERSION" >= 1030) then $MAKEQUEUES -u sleep 1 set USER_LIST = `ls -d /Users/*/Library/Preferences | cut -f3 -d/` while ($#USER_LIST) if !(-d /Users/"$USER_LIST[1]"/Library/Preferences/ByHost) then mkdir /Users/"$USER_LIST[1]"/Library/Preferences/ByHost chown "$USER_LIST[1]" /Users/"$USER_LIST[1]"/Library/Preferences/ByHost chmod 700 /Users/"$USER_LIST[1]"/Library/Preferences/ByHost endif cp /var/root/Library/Preferences/ByHost/com.apple.print.Cache.* /Users/"$USER_LIST[1]"/Library/Preferences/ByHost/ chown "$USER_LIST[1]" /Users/"$USER_LIST[1]"/Library/Preferences/ByHost/com.apple.print.Cache.*.plist shift USER_LIST end endif $MAKEQUEUES -r $MAKEQUEUES -k 'Canon BJ FireWire' $MAKEQUEUES -k 'Canon BJ Network' endif ########################################################### # LoginItem ########################################################### if (-e './SetLoginUtl') ./SetLoginUtl exit 0