Desinstalador de aplicativos.

Publicado por David 02/08/2007

[ Hits: 6.023 ]

Homepage: http://twitter.com/dias_david

Download desintalador-0.0.1




Alguns programas como google earth, picasa, unreal e outros joguinhos são bem bacanas e fáceis de se instalar, porém, muitas vezes a desinstalação torna-se um suplício.

Esse script feito para o KDE (Kurumin e Kubuntu, por exemplo) é uma mão na roda nesses casos.

Quem se interessar em portá-lo para outras linguagens de scripts, como zenitty e Dialog, fique a vontade.

  



Esconder código-fonte

#!/bin/sh
#
# Script legal para desinstalar programinhas que não tem desinstalador
#
# Desenvolvido por professordavid@gmail.com
#
# Colabore para que este script continue LIVRE e FUNCIONAL.
############################################################################

# Verifica pelo kdialog

if ! which kdialog; then
echo "Kdialog não foi encontrado em seu sistema.
Voce deve instalar o KDE para executar esse script"
exit ; 
fi


# Verificação de permissão do sudo.
# ( Obrigado à Carlos E. Morimoto )
if ! echo a | sudo -S whoami; then
kdialog --yesno "Você não tem permissão suficientes para executar esse script.
Gostaria de ativar o sudo para sua execução?

Ps.: Será necessário saber a senha de root"
   if [ $? = 0 ];then
   kdesu "echo `whoami`   ALL = NOPASSWD:   ALL >> /etc/sudoers"; else
   kdialog --error "O desinstalador não poderá ser executado."
   exit ;
   fi
fi




# Limpa pesquisa anterior.

if [ -e /tmp/desinstalador ]; then
echo "Limpando pesquisa anterior"
echo "sudo rm -rf /tmp/desinstalador"
sudo rm -rf /tmp/desinstalador
fi

dia='kdialog --title Desinstalar --caption Programas --icon linuxconf '

msg1="Digite o nome do programa que você quer desinstalar"

msg2="Localizando e removendo seu aplicativo, isso pode levar
vários minutos."



alvo=$($dia --inputbox "$msg1")

if [ -z $alvo ]; then
exit; 
fi

if [ `echo $alvo |wc -w ` -gt 1 ]; then
$dia --error "Escreva apenas uma única palavra para o seu programa.
ex: googleearth"
exit;

fi

$dia -passivepopup "$msg2" &

progress=`$dia --progressbar "Preparando a desinstalação" 9`

dcop $progress setProgress 1
dcop $progress setLabel "Iniciando busca"
sleep 1
if [ ! -e /tmp/updatedb ];then
pidia=`ps ax |grep kdialog |grep passivepopup |cut -d " " -f 2`; sudo kill -9 $pidia
sleep 1
$dia --passivepopup "Na primeira atualização de banco de dados, a busca costuma demorar varios minutos. Essa espera é normal, seu computador não está travado :-D " &

touch /tmp/updatedb
dcop $progress setProgress 2
dcop $progress setLabel "Atualizando banco de dados pela primeira vez"
sudo updatedb  --prunefs='smbfs cifs'; else
dcop $progress setProgress 2
dcop $progress setLabel "Atualizando banco de dados"
sleep 1
fi
locate $alvo > /tmp/desinstalador
dcop $progress setProgress 5
dcop $progress setLabel "Localizando arquivos de $alvo"
sleep 1

dcop $progress setProgress 7
dcop $progress setLabel "Busca por $alvo finalizada"
sleep 1

qtfiles=`cat /tmp/desinstalador |wc -l`


if [ $qtfiles = 0 ]; then
dcop $progress setProgress 9
dcop $progress setLabel "erro encontrado..."
sleep 1
dcop $progress close
$dia --error "Nenhum arquivo com $alvo foi encontrado.
Revise sua busca."
exit ; else
dcop $progress setProgress 9
dcop $progress setLabel "encontrados $qtfiles arquivos com o nome $alvo.
Preparando-se para remover."
sleep 1
dcop $progress close
fi

$dia --yesno "Serão deletados $qtfiles arquivos... 
Deseja continuar? "
if [ $? != 0 ]; then
exit;
fi

progress=`$dia --progressbar "Preparando a desinstalação" $qtfiles`
bar=1
dcop $progress setProgress $bar
dcop $progress setLabel "Preparando a desinstalação"
sleep 1
bar=$((bar+1))
for i in `cat /tmp/desinstalador`; do
sudo rm -rf $i
dcop $progress setProgress $bar
dcop $progress setLabel "Removendo...
$i";
bar=$((bar+1))
done

dcop $progress close
$dia --msgbox "$alvo removido com sucesso!! "

Scripts recomendados

Monitoramento da bateria

check_mem.sh - Plugin para o Nagios

Script para calcular o valor fatorial de um numero

Controlando o compartilhamento de internet por MAC

Funções Ni - funções para manipular listas e strings


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts