![]() |
A seguir encontra-se a shell script que faz a
implementação da automatização do serviço mantido pela lista Dicas-L. A explicação encontra-se dentro dos comentários da shell. #!/bin/sh #------------------------------------------------------------------------------ #------------------------------------------------------------------------------ # Definicao das variaveis # A variavel TIP_FILE e usada varias vezes no decorrer deste script # Todos os arquivos de dicas recebem o nome de acordo com a data # do dia em que sera veiculada, de modo a facilitar a automatizacao # do envio das mensagens. O comando # date +%y+%m+%d gera como saida uma string como 970630, que ira # servir como prefixo de todos os arquivos gerados. #------------------------------------------------------------------------------ PATH=/home/queiroz/bin:/bin:/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/local/bin TIP_FILE=`date +%y%m%d` #------------------------------------------------------------------------------ # Todos os arquivos gerados encontram-se em /usr/local/www/docs/dicas-l # Dai o deslocamento para la. #------------------------------------------------------------------------------ cd /usr/local/www/docs/dicas-l #------------------------------------------------------------------------------ # Criacao dos arquivos .doc e temporarios # A criacao destes arquivos e feita atraves da edicao do arquivo original. # o arquivo de sufixo .src. # Sao substituidas as diretivas originais, descritas na dica anterior, # por diretivas html, para criacao do arquivo html. # Para a criacao do arquivo de extensao .doc, as diretivas sao eliminadas # # Os comandos ao editor foram espacejados para facilitar a compreensao # do que esta se passando. Observar que todas as diretivas para conversao # em diretivas html, contidas no arquivo .src, encontram-se na primeira # posicao. # # Apos a substituicao das diretivas, e gravado o arquivo html # w! $TIP_FILE.tmp # Em seguida, as diretivas sao eliminadas e e' gravado entao o arquivo # de extensao .doc: # w! $TIP_FILE.doc # Apos esta etapa e' encerrada a edicao. O arquivo de extensao .src # permanece inalterado. #------------------------------------------------------------------------------ ed $TIP_FILE.src << EOF g:^\~: s:$:\~\~: g:^\~: s::<H1><FONT COLOR="#B22222"gt&;: g:\~\~$: s::</FONT><H1gt&;: 2s:^:<HR><Pgt&;: g:^--: s::<HR>: g:^\.\.: s::<PRE><FONT COLOR="#0000FF"gt&;: g:^;;: s::</FONT><PREgt&;: g:^\.: s::<P>: w! $TIP_FILE.tmp g:<H1>: s:: g:<PRE><FONT COLOR="#0000FF"gt&;: s:: g:<FONT COLOR="#B22222">: s:: g:</FONT><H1gt&;: s:: g:<P>: s:: g:</P>: s:: g:</FONT><PREgt&;: s:: g:</H1>: s:: g:<HR>:s::--------------------------------------------------------------------: w! $TIP_FILE.doc q EOF #------------------------------------------------------------------------------ # Montagem do arquivo html e definicao da tag # O arquivo html final e criado a partir da concatenacao de tres outros: # 1. O arquivo de cabecalho (dica.head.html) # 2. O arquivo temporario, criado na edicao do arquivo de extensao .src # ($TIP_FILE.tmp) # 3. O arquivo de rodape (dica.tail.html) #------------------------------------------------------------------------------ cat dica.head.html $TIP_FILE.tmp dica.tail.html > $TIP_FILE.html #------------------------------------------------------------------------------ # A seguir, o arquivo html gerado e editado para inclusao do # titulo e da data de criacao # O titulo esta sempre localizado na linha de numero 4 #------------------------------------------------------------------------------ ex $TIP_FILE.html << EOF 4s/Dicas-L/[Dicas-L] `head -n 1 $TIP_FILE.doc` g:Última Modificação\: DATA:s:DATA:`date +%d/%m/%y`: w q EOF #------------------------------------------------------------------------------ # Remocao dos acentos do arquivo .doc # Todos os acentos do arquivo de extensao .doc sao removidos # para gerar o arquivo de extensao .txt, que e' o arquivo que # sera enviado aos assinantes da lista. # Para isto utilizamos o shell script chamado tiraacento, que # ja foi discutido nesta lista #------------------------------------------------------------------------------ tiraacento $TIP_FILE.doc $TIP_FILE.txt #------------------------------------------------------------------------------ # Inclusao mensagem da dicas-l no arquivo .txt # Neste ponto sao incluidas as instrucoes sobre como se descadastrar # da lista contidas no arquivo tail.txt #------------------------------------------------------------------------------ cat tail.txt >> $TIP_FILE.txt #------------------------------------------------------------------------------ # Inclusao da dica do dia na listagem geral # A listagem de todas as dicas e' tambem atualizada diariamente de maneira # a permitir que os usuarios tenham o acesso direto a toda a documentacao # ja criada. #------------------------------------------------------------------------------ echo "<P><IMG SRC="/icons/b042.gif" HEIGHT=21 WIDTH=21><A HREF= "$TIP_FILE.html">`head -n 1 $TIP_FILE.doc`</A></P>" >> listagem.$$.html #------------------------------------------------------------------------------ # Atualizacao arquivo listagem.body.html # Criacao da listagem de dicas # A listagem de dicas e' criada a partir da concatenacao de outros arquivos # como exemplificado abaixo. Nesta listagem, a dica mais recente sempre # e a primeira a aparecer na listagem. #------------------------------------------------------------------------------ cat listagem.$$.html listagem.body.html > listagem.body.tmp mv listagem.body.tmp listagem.body.html cat listagem.head.html listagem.body.html listagem.tail.html > listagem.html #------------------------------------------------------------------------------ # Atualiza Indice # E gerado tambem um arquivo chamado 00index.txt, tambem atualizado # diariamente e colocado no servidor ftp anonimo da Unicamp # http://ftp.unicamp.br #------------------------------------------------------------------------------ echo "$TIP_FILE.[doc|txt] --- `head -n 1 $TIP_FILE.txt`" >> 00index.txt #------------------------------------------------------------------------------ # Atualiza repositório DICAS-L # Transferencia dos arquivos gerados para o servidor ftp # anonimo da Unicamp #------------------------------------------------------------------------------ ftp -ni ftp.unicamp.br << EOF user queiroz cd /pub/pub/dicas-l mput 00index.txt $TIP_FILE.txt $TIP_FILE.doc quit EOF #------------------------------------------------------------------------------ # Envia a mensagem para os assinantes #------------------------------------------------------------------------------ for user in `awk '{print $1}' /usr/server/lists/DICAS-L/.subscribers` do mail -s "[DICAS-L] `head -n 1 $TIP_FILE.txt`" $user < $TIP_FILE.txt echo $user done #------------------------------------------------------------------------------ # Remocao arquivos de trabalho #------------------------------------------------------------------------------ rm *.tmp listagem.$$.html A seguir encontra-se a listagem dos arquivos de cabeçalho e de rodapé utilizados: dica.head.html<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <HTML> <HEAD> <TITLE>Dicas-L</TITLE> <META NAME="GENERATOR" CONTENT="Mozilla/3.0Gold (X11; I; AIX 1) [Netscape]"> </HEAD> <BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000"> <P><H1 ALIGN=RIGHT><A HREF="http://www.dicas-l.unicamp.br"><IMG SRC= "dicas-l.gif" BORDER=0 HEIGHT=80 WIDTH=150></A></H1></DIV> </FONT></PRE> <HR> <P>dica.tail.html <HR> <PRE><FONT COLOR="#0000FF"> <HR WIDTH="100%"> <FONT SIZE=-1> <BR><A HREF="http://www.unicamp.br">Universidade Estadual de Campinas</A> <BR><A HREF="http://www.unicamp.br/CCUEC">Centro de Computação</A> <BR>Autor:<A HREF="mailto:[email protected]">Rubens Queiroz de Almeida</A> <BR>Última Modificação: DATA </FONT></P> </BODY> </HTML> listagem.head.html<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <HTML> <HEAD> <TITLE>Dicas-L - Sumario</TITLE> <META NAME="GENERATOR" CONTENT="Mozilla/3.0Gold (X11; I; AIX 1) [Netscape]"> </HEAD> <BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000"> <H1 ALIGN=RIGHT><A HREF="http://www.dicas-l.unicamp.br"><IMG SRC= "dicas-l.gif" BORDER=0 HEIGHT=80 WIDTH=150></A></H1></DIV> </BODY> </HTML> </FONT></PRE> <HR> <H1><FONT COLOR="#B22222">listagem.body.html</FONT></H1> <HR> <PRE><FONT COLOR="#0000FF"> <P><IMG SRC=/icons/b042.gif HEIGHT=21 WIDTH=21><A HREF=970627.html>Caracteres invisíveis</A></P> <P><IMG SRC=/icons/b042.gif HEIGHT=21 WIDTH=21><A HREF=970626.html>O comando sort (4)</A></P> <P><IMG SRC=/icons/b042.gif HEIGHT=21 WIDTH=21><A HREF=970625.html>O comando sort (3)</A></P> .... e muito mais 00index.txt======= DICAS-L ======= Este diretorio contem a lista completa das dicas veiculadas na lista dicas-l. As dicas diarias podem ser encontradas em dois arquivos com extensao .[doc|txt] e extensao .txt. Os arquivos com extensao .[doc|txt] sao acentuados ao passo que os arquivos com extensaotxt nao sao. As dicas sao identificadas pelo dia em que foram veiculadas e por sua extensao ([doc|txt] ou txt). Desta forma o arquivo que contem a dica do dia 11 de abril de 1997 se chamara 110497.txt ou 110497.[doc|txt]. As dicas encontram-se em ftp.unicamp.br:/pub/dicas-l. Em breve estas dicas estarao disponiveis tambem atraves do servidor Web do Centro de Computacao da Unicamp (http://www.unicamp.br/CCUEC). 970303.[doc|txt] --- O comando find 970304.[doc|txt] --- Dicas uso gzip etc, etc, etc Tabela de conversão de diretivas===================================================================== SRC HTML ===================================================================== ~ <H1><FONT COLOR="#B22222"> -- <HR> .. <PRE><FONT COLOR="#0000FF"> ;; </FONT></PRE> . <P> ===================================================================== |
![]() |