plaspkg dialog
Publicado por Reinaldo Marques de Lima 23/11/2005
[ Hits: 4.892 ]
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'
Configurar data e hora em Xdialog
Logs do daemontools - tradução de timestamp
Remover e-mails com MX inexistente e status deferred em servidores Postfix
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Como ordenar datas corretamente usando o Calc? (2)
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (21)