Controle Total do Cups

Script com opcao de instalar impressora, remover impressora, Definir como padrao e outras opcoes.
Dependencias: zenity, cups(cupsys). 



=>Copie todo o conteudo abaixo em um documento de texto e Torne-o executavel. Execute como root.





#!/bin/bash
#script Júlio César Fais - Controle Total do Cups - 23 Novembro 2010
#julio.tecnico@bol.com.br
#juliovarginha.blogspot.com
#Dependencias: Zenity,cups(ou cupsys)




#########################################inicio da função visualizar impressora instalada (8)
function function_visualizar () {
a=$(lpstat -p -d;lpq)
zenity --info --text "$a"


}


#########################################inicio da função impressora padrão (7)
function function_padrao () {
`zenity --warning --text "Execute Como Administrador (root)!" --title "AVISO DO JULIO!!!"`
nomelocal=$(zenity --entry --text="Digite o Nome da Impressora que Será a Padrão" --title="Ex.: HP, Kyocera" --width=300)


/usr/sbin/lpadmin -d $nomelocal 2> /tmp/2345678.txt
a=$(cat /tmp/2345678.txt)
zenity --info --text "$a"


}


#########################################Inicio da função remover impressora (6)
function function_remover () {
`zenity --warning --text "Execute Como Administrador (root), ou Adicione seu usuario ao grupo lpadmin!" --title "AVISO DO JULIO!!!"`
nomelocal=$(zenity --entry --text="Digite o Nome da Impressora que Será Removida" --title="Ex.: HP, Kyocera" --width=300)


/usr/sbin/lpadmin -x $nomelocal 2> /tmp/2345678.txt
a=$(cat /tmp/2345678.txt)
zenity --info --text "$a"


}


##########################################inicio da função CANCELAR TRABALHOS E INICIAR IMPRESSORA (5)
function function_canc () {
nomelocal=$(zenity --entry --text="Digite o Nome da Impressora." --title="Ex.: HP, Kyocera" --width=300)
cancel -a $nomelocal
/usr/bin/enable $nomelocal
/usr/sbin/accept $nomelocal
lpadmin -p $nomelocal -E


}


##########################################inicio da função imprimir arquivo (4)
function function_imprimir () {


imp=$(zenity --entry --text="Digite o Nome da Impressora." --title="Ex.: HP, Kyocera" --width=300)
arquivo=$(zenity --file-selection --title "Escolha um Arquivo.")
lp -d $imp $arquivo &> /tmp/2345678.txt
a=$(cat /tmp/2345678.txt)
zenity --info --text "$a"


#outro comando idêntico=> lpr -P $imp $arquivo


}


###########################################inicio da função impressora remota windows (3)
function function_smb () {
`zenity --warning --text "Execute Como Administrador (root), ou Adicione seu usuario ao grupo lpadmin!" --title "AVISO DO JULIO!!!"`
nomelocal=$(zenity --entry --text="Digite o Nome para a Impressora..." --title="Ex.: HP, Kyocera" --width=300)
ipmicro=$(zenity --entry --text="Digite o IP do Micro com a Impressora Compartilhada..." --title="Ex.: 192.168.1.x" --width=300)
nomecompartilhado=$(zenity --entry --text="Digite o Nome da Impressora (Compartilhado)" --title="Atenção Nome Compartilhado" --width=300)
driverlocal=`zenity --file-selection --filename=/usr/share/foomatic/db/source/PPD/ --title "Escolha o Driver(.ppd)"`


/usr/sbin/lpadmin -p $nomelocal -E -v smb://$ipmicro/$nomecompartilhado -m $driverlocal


zenity --info --text "A Impressora $nomelocal Foi Instalada!."


}


###########################################Início da função paralela (2)
function  function_paralela () {
zenity --warning --text "Execute Como Administrador (root), ou Adicione seu usuario ao grupo lpadmin!" --title "AVISO DO JULIO!!!"
nomelocal=$(zenity --entry --text="Digite o Nome para a Impressora..." --title="Ex.: HP, Kyocera" --width=300)
driverlocal=`zenity --file-selection --filename=/usr/share/foomatic/db/source/PPD/ --title "Escolha o Driver(.ppd)"`


/usr/sbin/lpadmin -p $nomelocal -E -v parallel:/dev/lp0 -m $driverlocal




zenity --info --text "A Impressora $nomelocal Foi Instalada!."
clear


}


###########################################inicio da função (1)
function function_geral () {
`zenity --warning --text "Execute Como root, a seguir aparecerão seus dispositivos,anote o que for Necessário...Aguarde" --title "AVISO DO JULIO!!!"`
a=$(lpinfo -v) &> /tmp/2345678.txt
b=$(cat /tmp/2345678.txt)
zenity --info --text "$a"
disp=$(zenity --entry --text="Ex.: socket://10.1.1.1:9100, USB, HTTP://10.1.1.1:631/printers/imp." --title="Digite Caminho/Nome do Dispositivo" --width=300)
j=$(zenity --file-selection --filename=/usr/share/foomatic/db/source/PPD/  --title "Escolha o Driver (.ppd)") 
mkdir /tmp/jj
cp $j /tmp/jj
cd /tmp/jj
gzip -d *
driverlocal=$(cp /tmp/jj/*.ppd)


nomelocal=$(zenity --entry --text="Digite o Nome para a Impressora..." --title="Ex.: HP, Kyocera" --width=300)




lpadmin -p $nomelocal -E -v $disp -m $driverlocal -u allow:all -o printer-is-shared=true


mv /tmp/jj/*.ppd /etc/cups/ppd/$nomelocal.ppd
/etc/init.d/cups stop
/etc/init.d/cups start
/etc/init.d/cupsys stop
/etc/init.d/cupsys stop
a=$(lpstat -p -d;lpq)


zenity --info --text "A Impressora $nomelocal Foi Instalada!."
zenity --info --text "$a"


rm -fr /tmp/jj


}


################################################## MENU ######################################################################
while true; do
  acao="$(zenity --width=400 --height=370 --list --column "        ATENÇÃO...EXECUTE-O COMO ROOT." --title="          SCRIPT JULIO CUPS" \
    "1) INSTALAR => GERAL <=" \
    "2) ADICIONAR IMPRESSORA PARALELA LOCAL" \
"3) ADICIONAR IMPRESSORA REMOTA NO WINDOWS" \
"4) IMPRIMIR UM ARQUIVO" \
"5) CANCELAR TRABALHOS E INICIAR IMPRESSORA" \
"6) REMOVER IMPRESSORA" \
"7) DEFINIR IMPRESSORA COMO PADRÂO" \
"8) VISUALIZAR IMPRESSORAS INSTALADAS" \
"   SAIR")"


case $acao in


"1) INSTALAR => GERAL <=")
function_geral ;;


"2) ADICIONAR IMPRESSORA PARALELA LOCAL")
function_paralela ;;


"3) ADICIONAR IMPRESSORA REMOTA NO WINDOWS")
function_smb ;;


"4) IMPRIMIR UM ARQUIVO")
function_imprimir ;;


"5) CANCELAR TRABALHOS E INICIAR IMPRESSORA")
function_canc ;;


"6) REMOVER IMPRESSORA")
function_remover ;;


"7) DEFINIR IMPRESSORA COMO PADRÂO" )
function_padrao ;;


"8) VISUALIZAR IMPRESSORAS INSTALADAS" )
function_visualizar ;;


*) exit ;;


esac


done


############################################### FIM #################################################
#script Júlio César Fais - Controle Total do Cups - 23 Novembro 2010
#julio.tecnico@bol.com.br
#juliovarginha.blogspot.com
#Dependencias: Zenity,cups(ou cupsys)

Nenhum comentário: