removido
(usa Nenhuma)
Enviado em 05/12/2009 - 21:12h
agr está assim
-------------------------------------------------------
#!/bin/bash
# variaveis
DIR=`pwd`
AQVLOG=programas-instalados
AQVLOG2=programas-instalação
AQVLOGDIR=diretorio-instalação
DIRLOG=/var/log/DGF
BIN=/usr/local/bin
pacote=/home/douglas/outros/scripts/DGF
#cria os diretorios e os arquivos, caso esteja faltando
if [ ! -d "$DIRLOG" ]; then
rm -rf "$DIRLOG"
mkdir -p "$DIRLOG"
fi
if [ ! -e "$DIRLOG/$AQVLOG2" ]; then
touch $DIRLOG/$AQVLOG2
fi
if [ ! -e "$DIRLOG/$AQVLOG" ]; then
touch $DIRLOG/$AQVLOG
fi
if [ ! -e "$DIRLOG/$AQVLOGDIR" ]; then
touch $DIRLOG/$AQVLOGDIR
fi
# função
Fprogramas() {
programa=$(dialog --stdout \
--title 'Pergunta' \
--separate-output \
--checklist 'escolha as opções' 0 0 0 \
"todos" 'todos os programas do diretorio' ON \
"outros" 'outros programas' OFF \
"$1" '' OFF \
"$2" '' OFf \
"$3" '' OFF \
"$4" '' OFF \
"$5" '' OFF \
"$6" '' OFF \
"$7" '' OFF \
"$8" '' OFF \
"$9" '' OFF )
}
# decide oq quer fazer entre instalar e desinstalar programas
escolha=$( dialog --stdout \
--menu 'O que quer fazer?' \
0 0 0 \
Instalar 'Instalar os programas' \
Desinstalar 'Desinstalar os programas' )
# aplica a escolha desejada, de instalar ou desinstalar
case "$escolha" in
# instala
Instalar)
dialog --dselect $HOME 0 0 2> /tmp/resposta.tmp
diretorio=`cat /tmp/resposta.tmp`; rm -f /tmp/resposta.tmp
ls $diretorio &> "$DIRLOG/$AQVLOGDIR"
programadir=`grep ^.*$ $DIRLOG/$AQVLOGDIR`
for resultado in $programadir
do
resultado2="$resultado2 $resultado"
done
# chama função
Fprogramas $resultado2
[ $? -eq 1 ] && exit 1
if [ "$programa" = "todos" ]; then
programa=$programadir/*
else
programa2=`echo "$programa" | fgrep -w outros` ########
echo "$programa2"
if [ "$programa2" = "outros" ]; then
outrosprogramas=$(dialog --stdout --inputbox 'digite os programas:' 0 0)
[ $? -eq 1 ] && exit 1
programa="$outrosprogramas `echo "$programa" | fgrep -v outros`"
fi
fi
ls $programa &> "$DIRLOG/$AQVLOG2"
for prog in `grep dgf* $DIRLOG/$AQVLOG2`
do
prog=`echo $prog | sed -e 's/.*://'` # filtra o nome do programa
if [ -e "$BIN/$prog" ]; then
dialog --title 'Instalação' --backtitle 'dgf' --yesno "O programa $prog ja existe, deseja instala-lo por cima?" 0 0
case $a in
0) cp "$prog" $BIN ;;
1) exit 1 ;;
esac
else
cp "$prog" $BIN
fi
prog2=`echo $prog | sed -e 's/.*\///'` # filtra o nome do programa
# cria o log programas-instalados
while [ -z `grep $prog2 $DIRLOG/$AQVLOG` ];
do
echo "$prog2" >> "$DIRLOG/$AQVLOG"
done
done
;;
# desinstala
Desinstalar)
for prog in `grep dgf* "$DIRLOG/$AQVLOG"`
do
prog=`echo $prog | sed -e 's/.*://'` # filtra o nome do programa
rm "$BIN/$prog"
done
;;
esac
#========================FIM===========================
----------------------------------------------------------------------