Desinstalador de aplicativos.

Publicado por David 02/08/2007

[ Hits: 5.908 ]

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

Bomba.sh - Estouro de memória RAM com Menu

Controlando o compartilhamento de internet por MAC

Incluindo lista de IP's nos arquivos de bloqueio do Squid automaticamente

Alterar o papel de parede aleatoriamente

Fechar contas em servidor Zimbra após 90 dias


  

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