#!/bin/sh

KYOCERA_CONFIG="/usr/share/kyocera"

uninstall_printers(){
    files=`grep -l "kyofilter_F\|kyofilter_ras_F\|kyofilter_pdf_F" /etc/cups/ppd/*.ppd 2>/dev/null`
    if [ ! -z "$files" ]; then
        for file in ${files}; do
            if matches $file .ppd; then
                basefile=$(basename $file .ppd)
                lpadmin -x $basefile
            fi
        done
    fi
}

get_user_printer_list(){
    # $1 is user
    if [ -d $KYOCERA_CONFIG/$1  ]; then 
        echo `ls $KYOCERA_CONFIG/$1`
    fi
}

uninstall_kyocera_config_files(){
    # $1 is user
    # $2 is printer list
    rm -rf "$KYOCERA_CONFIG/$1/"
}

uninstall_lpoptions_config_files(){
    # $1 is user
    # $2 is printer list

    lp_options="/home/$1/.cups/lpoptions"

    #echo "Editing lpoptions config file"
    if [ ! -z $2 ]; then 
        for printer in ${printers}; do
            sed -i "s/\(Dest\|Default\) $base_printer.*//" $lp_options
        done
    fi
}

uninstall_config_files(){
    #For each user, uninstall the config files in
    #/usr/share/kyocera/<username> and ~/.cups/lpoptions
    if [ -d $KYOCERA_CONFIG ]; then
        users=`ls $KYOCERA_CONFIG | grep -v 'ppd4\|ppd5\|ppd6\|ppd7\|appicon\|Python'`
        if [ ! -z "$users" ]; then
            for user in ${users}; do
                is_appicon=`matches $user appicon.png`
                is_python=`matches $user Python`
                if [ ! $is_appicon ] && [ ! $is_python ] ;then
                    printers=`get_user_printer_list $user`
                    uninstall_kyocera_config_files $user $printers
                    uninstall_lpoptions_config_files $user $printers
                fi
            done
        fi
    fi
}

remove_directories(){
    rm -rf /usr/share/cups/model/kyocera
    if [ -d /usr/share/ppd/kyocera ]; then
        rm -rf "/usr/share/ppd/kyocera"
    fi
    if [ -d /usr/share/kyocera/Python ]; then
        rm -rf "/usr/share/kyocera/Python"
    fi
    if [ -d /usr/share/kyocera/ppd7 ]; then
        rm -rf "/usr/share/kyocera/ppd7"
    fi
    if [ -L $KYOCERA_CONFIG ]; then
        rm -rf $KYOCERA_CONFIG
    fi
}

kill_knmd(){
    pkill 'knmd'
}

matches(){
    input="$1"
    pattern="$2"
    echo "$input" | grep -q "$pattern"
}


uninstall_printers
uninstall_config_files
remove_directories
kill_knmd

return 0

