plaspkg dialog

Publicado por Reinaldo Marques de Lima 23/11/2005

[ Hits: 4.406 ]

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

Visualizar ícone dos .exe em seu Gnome

Conversor de logs do squid

Arch Linux - remover dependências obsoletas

Pesquisa Preços pela Internet

Backup Subversion


  

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