#! /bin/sh
#
# Brother Print filter
# Copyright (C) 2003-2018 Brother. Industries, Ltd.

# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 2 of the License, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
# more details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, write to the Free Software Foundation, Inc., 59 Temple
# Place, Suite 330, Boston, MA  02111-1307  USA
#

printer_model=""mfcl8900cdw""
printer_name=`echo $printer_model | tr '[a-z]' '[A-Z]'`
device_name=`echo $printer_name | eval sed -e 's/MFC/MFC-/' -e 's/DCP/DCP-/' -e 's/HL/HL-/' -e 's/FAX/FAX-/'`
pcfilename=`echo $printer_name | tr -d '[A-Z]'`
device_model="bin"
#ldpwrapper=/opt/brother/${device_model}/${printer_model}/cupswrapper/brother_lpdwrapper_${printer_model}
ldpwrapper=/opt/brother/${printer_model}/${device_model}/cupswrapper/brother_${printer_model}

if [ -d "/usr/share/cups/model" ]; then
  mkdir -p /usr/share/cups/model/Brother
else
  mkdir -p /usr/share/ppd/Brother
fi

if [ -d "/usr/share/ppd" ]; then
  mkdir -p /usr/share/ppd/Brother       
else
  mkdir -p /usr/share/cups/model/Brother
fi



if [ "$1" = '-e' ]; then
  lpadmin -x ${printer_name}
  rm -f /usr/share/cups/model/Brother/brother_${printer_model}_printer_en.ppd
  rm -f /usr/share/ppd/Brother/brother_${printer_model}_printer_en.ppd
  rm -f /usr/lib/cups/filter/brother_${printer_model}
  rm -f /usr/lib64/cups/filter/brother_${printer_model}
if [  -e /etc/init.d/cups ]; then
   /etc/init.d/cups restart
elif [  -e /etc/init.d/cupsys ]; then
   /etc/init.d/cupsys restart
fi
#  /etc/init.d/cups restart
  exit 0
fi
if [ "$1" = "-r" ]; then
  lpadmin -x ${printer_name}
if [  -e /etc/init.d/cups ]; then
   /etc/init.d/cups restart
elif [  -e /etc/init.d/cupsys ]; then
   /etc/init.d/cupsys restart
fi
#  /etc/init.d/cups restart
  exit 0
fi
if [ "$1" = "help" ] || [ "$1" = "-h" ]; then
  echo   'option -h : help'
  echo   '       -i : install'
  echo   '       -e : uninstall'
  echo   '       -r : remove printer'
  exit 0
fi


if [ -e "/opt/brother/${printer_model}/${device_model}/lpd/filter_${printer_model}" ]; then
  :
else
  echo "ERROR : Brother LPD filter is not installed."
fi
rm -f /usr/share/cups/model/Brother/brother_${printer_model}_printer_en.ppd
if [ -d "/usr/share/cups/model" ]; then
  ppd_file_name=/usr/share/cups/model/Brother/brother_${printer_model}_printer_en.ppd
else
  ppd_file_name=/usr/share/ppd/Brother/brother_${printer_model}_printer_en.ppd
fi

if [ -e "/opt/brother/${printer_model}/${device_model}/cupswrapper/brother_${printer_model}_printer_en.ppd" ];	then
cp "/opt/brother/${printer_model}/${device_model}/cupswrapper/brother_${printer_model}_printer_en.ppd" $ppd_file_name
fi

chmod 644 $ppd_file_name

if [ -d /usr/share/ppd ]
then
if [ -d /usr/share/cups/model ]
then
	cp $ppd_file_name /usr/share/ppd/Brother/brother_${printer_model}_printer_en.ppd
	chmod 644 /usr/share/ppd/Brother/brother_${printer_model}_printer_en.ppd
fi
fi

#
#	create temporary CUPS Filter
#



#
#	check /usr/lib/cups/filter
#
if [ -d /usr/lib/cups/filter ]; then
	brotherlpdwrapper=/usr/lib/cups/filter/brother_${printer_model}
	rm -f  $brotherlpdwrapper
	#cp $tmp_filter	$brotherlpdwrapper
	ln -s $ldpwrapper $brotherlpdwrapper
fi

#
#	check /usr/lib64/cups/filter
#
if [ -e /usr/lib64/cups/filter ]; then
	brotherlpdwrapper64=/usr/lib64/cups/filter/brother_${printer_model}
	rm -f  $brotherlpdwrapper64
	#cp $tmp_filter	$brotherlpdwrapper64
	ln -s $ldpwrapper $brotherlpdwrapper64
fi

								
exit 0

