plaspkg dialog
Publicado por Reinaldo Marques de Lima 23/11/2005
[ Hits: 5.158 ]
Homepage: http://plasticossj4.wordpress.com
Uma nove vesão de um script que eu ja havia postado, agora em dialog
#! /bin/bash
##################################################################
# #
# plaspkg_dialog wrote by Reinaldo Marques de Lima (Plastico) #
# criação iniciada em: 11/2005 #
# concluido em: em andamento #
# ultima atualização: 18/11/2005 #
# descrição: #
# pacote de scripts para automatizar a execução de programas #
# roda aplicativos de uma lista, inclui e exclui aplicativos #
# da lista,mostra o conteudo da lista e mata processos que #
# estejam travados. #
# #
# 05/11 - Inicio da implementação dos codigos do programa #
# 'plaspkg' para dialog, Apresentação e opção 'plassee' #
# 07/11 - Inplementação da Ajuda do programa para dialog #
# 08/11 - Implementeção do codigo da opção plasadd #
# 17/11 - Implementação dos codigos das opções plaskill e #
# plasrm #
# 18/11 - Implementação do codigo da opção plasall #
# #
##################################################################
# #
# A mesma versão do pacote 'plaspkg' em versão com dialog #
# #
##################################################################
CREDITOS='plaspkg_dialog criado por Reinaldo Marques de Lima (Plastico)'
#---------------------------------------------------------#
# primeiro dialog, apresentação do programa #
#---------------------------------------------------------#
APRESENTACAO='
Bem vindo ao programa plaspkg versao 0.1
Escrito por Reinaldo Marques de Lima (Plastico)
Este programa eh de codigo aberto e livre para ser
alterado de acordo com as nercessidades de cada
usuario.
------------------- Atencao --------------------
Se esta for a primeira vez que voce estah usando o
programa, convem ler o conteudo da Opcao 6 ( Ajuda )
e logo em seguida inserir os primeiros dado com a
Opcao 2 ( plasadd ).
'
dialog --backtitle "$CREDITOS" \
--title 'Apresentacao' \
--msgbox "$APRESENTACAO" \
0 0 &&
[ $? -ne 0 ] && echo 'Esc ou CANCELAR apertado'
#---------------------------------------------------------#
# segundo dialog, menu do programa #
#---------------------------------------------------------#
OPCAO=$( dialog --stdout \
--backtitle "$CREDITOS" \
--title 'Menu' \
--menu 'Escolha a opcao desejada e de OK' \
0 0 0 \
1 'Plassee, ve o conteudo da lista' \
2 'Plasadd, adiciona nomes a lista' \
3 'Plasall, executa o que estiver na lista' \
4 'Plasrm, remove ocorrencias da lista' \
5 'Plaskill, mata um processo qualquer' \
6 'Ajuda' )
[ $? -ne 0 ] && echo 'Esc ou CANCELAR apertado'
#---------------------------------------------------------#
# aqui entra o case que executa a opção escolhida #
#---------------------------------------------------------#
funcao.OPCAO() {
case "$OPCAO" in
1) plassee; ;;
2) plasadd; ;;
3) plasall; ;;
4) plasrm; ;;
5) plaskill; ;;
6) ajuda; ;;
esac
}
#---------------------------------------------------------#
# terceiro dialog, plassee: opção 1 #
#---------------------------------------------------------#
# mostra na tela as ocorrencias contidas em 'plasall.txt' #
#---------------------------------------------------------#
plassee() {
dialog --backtitle "$CREDITOS" \
--title '( Plassee ) o conteudo do arquivo eh:' \
--textbox plasall.txt \
0 0
[ $? -ne 0 ] && echo 'Esc ou CANCELAR apertado'
}
#---------------------------------------------------------#
# quarto dialog, plasadd: opção 2 #
#---------------------------------------------------------#
# alimenta uma lista de aplicativo para serem iniciados #
#---------------------------------------------------------#
plasadd() {
PROGRAMAS=$( dialog --stdout \
--backtitle "$CREDITOS" \
--title '( Plasadd ) Insere programas a uma lista.' \
--inputbox 'Digite o nome do programa:' \
0 0 )
[ $? -ne 0 ] && echo 'Esc ou CANCELAR apertado'
ARQUIVO="plasall.txt"
TESTE=`cat plasall.txt | grep $PROGRAMAS`
if [ $PROGRAMAS = $TESTE ]; then
dialog --backtitle "$CREDITOS" \
--title '( Plasadd ) Insere programas a uma lista' \
--msgbox 'Nome ja existe na lista' \
0 0
[ $? -ne 0 ] && echo 'Esc ou CANCELAR apertado'
else
for i in ${PROGRAMAS}; do
echo ${i} >> $ARQUIVO
done
dialog --backtitle "$CREDITOS" \
--title '( Plasadd ) Insere programas a uma lista' \
--msgbox 'O programa foi cadastrado com sucesso' \
0 0
[ $? -ne 0 ] && echo 'Esc ou CANCELAR apertado'
fi
}
#---------------------------------------------------------#
# quinto dialog, plasall: opção 3 #
#---------------------------------------------------------#
# executa tudo que estiver listado em 'plasall.txt' #
#---------------------------------------------------------#
plasall() {
LISTA=`cat plasall.txt`
for i in ${LISTA}; do
if [ `ps -ef|grep $i | wc -l` -gt 1 ]; then
dialog --backtitle "$CREDITOS" \
--title '( Plasall ) Inicia aplicativos' \
--infobox ' Aplivativo ja esta em execucao.' \
0 0
else
dialog --backtitle "$CREDITOS" \
--title '( Plasall ) Inicia aplicativos' \
--infobox 'Iniciando aplicativo, aguarde...' \
0 0
$i & &> /dev/null
sleep 3
fi
done
dialog --backtitle "$CREDITOS" \
--title '( Plasall ) Inicia aplicativos' \
--msgbox 'Fim do processo\n \
de OK, Cancelar ou Esc para sair' \
0 0
}
#---------------------------------------------------------#
# sexto dialog, plasrm: opção 4 #
#---------------------------------------------------------#
# retira um nome de aplicativo da lista em 'plasall.txt' #
#---------------------------------------------------------#
plasrm() {
ARQUIVO="plasall.txt"
PROGRAMA=$( dialog --stdout \
--backtitle "$CREDITOS" \
--title '( Plasrm ) Remove ocorrencias da lista' \
--inputbox 'Digite o nome do programa que sera removido' \
0 0 )
[ $? -ne 0 ] && echo 'Esc ou CANCELAR apertado'
TESTE=`grep $PROGRAMA plasall.txt`
if [ ! $TESTE ]; then
dialog --backtitle "$CREDITOS" \
--title '( Plasrm ) Remove ocorrencias da lista' \
--msgbox 'Argumento nao existe na lista.' \
0 0
[ $? -ne 0 ] && echo 'Esc ou CANCELAR apertado'
else
sed "/$PROGRAMA/d" $ARQUIVO > .tmp
cat .tmp > $ARQUIVO
rm -f .tmp
dialog --backtitle "$CREDITOS" \
--title '( Plasrm ) Remove ocorrencias da lista' \
--msgbox 'O argumento foi removido da lista.' \
0 0
[ $? -ne 0 ] && echo 'Esc ou CANCELAR apertado'
fi
}
#---------------------------------------------------------#
# setimo dialog, plaskill: opção 5 #
#---------------------------------------------------------#
# mata processos buscando o PID #
#---------------------------------------------------------#
plaskill() {
KILL="/bin/kill"
APLICATIVO1=$( dialog --stdout \
--backtitle "$CREDITOS" \
--title '( Plaskill ) Mata processos travados' \
--inputbox 'Digite o nome do processo que voce quer matar:' \
0 0 )
[ $? -ne 0 ] && echo 'Esc ou CANCELAR apertado'
dialog --stdout \
--backtitle "$CREDITOS" \
--title '( Plaskill ) Atencao' \
--yesno 'Deseja Matar mais algum processo?' \
0 0
[ $? -ne 0 ] && echo 'Esc ou CANCELAR apertado'
if [ $? -eq 1 ]; then
APLICATIVO2=$( dialog --stdout \
--backtitle "$CREDITOS" \
--title '( Plaskill ) Segundo processo a ser terminado' \
--inputbox 'Por favor digite outro nome' \
0 0 )
[ $? -ne 0 ] && echo 'Esc ou CANCELAR apertado'
PROCESSO=($APLICATIVO1 $APLICATIVO2)
else
PROCESSO=($APLICATIVO1)
fi
for i in ${PROCESSO[*]}; do
if [ $i = X ]; then
dialog --backtitle "$CREDITOS" \
--title '( Plaskill ) Aviso' \
--msgbox 'ts ts, fazendo caca!!!' \
0 0
[ $? -ne 0 ] && echo 'Esc ou CANCELAR apertado'
elif [ `ps -ef|grep $i | wc -l` -lt 2 ]; then
dialog --backtitle "$CREDITOS" \
--title '( Plaskill ) Aviso' \
--msgbox 'Aplicativo nao esta rodando ou nome esta errado' \
0 0
[ $? -ne 0 ] && echo 'Esc ou CANCELAR apertado'
else
JOB=`ps -ef|grep $i | awk {'print $2'} | head -1`
$KILL $JOB
dialog --backtitle "$CREDITOS" \
--title '( Plaskill ) Aviso' \
--msgbox 'Processo(s) finalizado(s) com sucesso' \
0 0
[ $? -ne 0 ] && echo 'Esc ou CANCELAR apertado'
fi
done
}
#---------------------------------------------------------#
# oitavo dialog, ajuda: opção 6 #
#---------------------------------------------------------#
# ajuda do programa #
#---------------------------------------------------------#
ajuda() {
AJUDA='
Ajuda do Programa 'plaspkg'
Este programa foi criado para automatiza a execucao de
alguns programas, por exemplo ( amsn, firefox, xmms)
ou qualquer outro programa de sua escolha.
Escolha uma das opcoes do menu para uma determinada funcao:
1) plassee - mostra na tela o conteudo do arquivo
'plasall.txt' que eh a lista de execucao de programas.
2) plasadd - adiciona aplicativos a uma lista de execucao,
essa lista sera usada pelo 'plasall' para executar esses
aplicativos.
Obs.: Se for a primeira vez que voce estiver usando essa
opcao, pode aparecer uma mensagem de erro dizendo que o
arquivo 'plasall.txt' nao foi encontrado, mas isso acontece
somente na primeira vez, e depois o proprio programa ja
cria ele, se caso voce quiser evitar isso,basta criar no
seu home este arquivo;
3) plasall - executa todos os aplicativos que estiverem
listados no arquivo plasall.txt e depois sai do programa;
4) plasrm - simplesmente tira da lista os aplicativos
que forem digitados ( faz o inverso da opcao plasadd);
5) plaskill - busca processos pelo numero e da um kill
no processo, serve para todos os processos, menos para
o X ;) e sai do programa.'
dialog --backtitle "$CREDITOS" \
--title 'Ajuda' \
--msgbox "$AJUDA" \
0 0
[ $? -ne 0 ] && echo 'Esc ou CANCELAR apertado'
}
funcao.OPCAO
echo 'Obrigado por usar o programa Plaspkg versão dialog'
Script para monitoramento de processos em execução no sistema
Shell Script para Guia Foca Linux
Slocal Manipulação de pacotes Slackware
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
[Resolvido] VirtualBox can't enable the AMD-V extension
Como verificar a saúde dos discos no Linux
Como instalar , particionar, formatar e montar um HD adicional no Linux?
Como automatizar sua instalação do Ubuntu para desenvolvimento de software.
Quais os códigos mais dificeis que vcs sabem fazer? (3)
Fiz uma pergunta no fórum mas não consigo localizar (14)
Upscaling com imagem cortada no monitor secundário ao usar iGPU Multi ... (1)
Não consigo instalar distro antiga no virtualbox nem direto no hd (7)
Servidor Ubuntu 24.04 HD 500 não tenho espaço na \home\adminis... [RES... (8)









