DPS Dicas & Sites A Melhor Empresa de Automação Comercial . Confira !



Automatização de Criação de Home Pages 2/2

 

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 extensao

txt 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>
=====================================================================


Home | Novidades | Dicas | Links | E-Mail

Faça Sua Home Page !