plaspkg dialog

Publicado por Reinaldo Marques de Lima 23/11/2005

[ Hits: 4.892 ]

Homepage: http://plasticossj4.wordpress.com

Download plaspkg_dialog.bsh




Uma nove vesão de um script que eu ja havia postado, agora em dialog

  



Esconder código-fonte

#! /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'

Scripts recomendados

Plugin para Nagios

Configurar data e hora em Xdialog

GRUB-recovery

Logs do daemontools - tradução de timestamp

Remover e-mails com MX inexistente e status deferred em servidores Postfix


  

Comentários
[1] Comentário enviado por hudy_mgs em 14/12/2005 - 23:24h

ae "camagada", a ideia do seu escrpt eh boa, mas acho que se vc dese uma incurtada nele ficaria melhos, belezzz fui..


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts