plaspkg dialog
Publicado por Reinaldo Marques de Lima 23/11/2005
[ Hits: 4.891 ]
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'
QMPlay2 20.12.16 Build para o Deepin 20 - Novo Esquema
Instalação de pacotes em uma lista
Informação sobre partições montadas em Xdialog
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
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (15)
Tenho dois Link's ( IP VÁLIDOS ), estou tentando fazer o failover... (0)
Pendrive não formata de jeito nenhum (4)