#!/bin/sh target=FAQ-CervanTeX LATEX=latex COMMON="--language=\"spanish\" --charset=\"latin\"" TARGET="FAQ-CervanTeX.sgml" SOURCEDIR="/home/agmartin/local-docs/docs/sgml" SOURCE="/home/agmartin/local-docs/docs/sgml/FAQ-CervanTeX.sgml" MAINTAINER_NAME="Agustín Martín" MAINTAINER_EMAIL="agmartin@aq.upm.es" ORGANIZATION="Depto. Física, E.T.S. Arquitectura Madrid" SMTP_SERVER=/usr/sbin/sendmail # -- Esto debe ser un link al mailer real clean_files(){ rm -f *.aux *.log *.dlg *.toc *~ } clean_all_old(){ clean_files rm -f *.html *.tex *.dvi *.pdf *.txt *.lyx *.info *.latin1 *.cp850 *.cp437 *.applemac *.out *.rtf *.ps *.ms-ansi *.bak *~ } process_sgml_source (){ sed -e 's/\$Re[v]ision: \([0-9\.]*\) \$ \$D[a]te: \([0-9\/]*\) \([0-9:]*\) \$/Versión \1 de \2 a las \3/g' $SOURCE > $target.sgml } extract_date (){ grep "^" $target.sgml | grep "Versión" | sed 's///g' } traduce_cabecera(){ sed -e 's/\\\$Re[v]ision: 1.1 $ \\\$D[a]te: 1999/11/10 16:17:53 $/Versión \1 de \2 a las \3/g' $1 } extrae_tabla_de_materias (){ lynx -dump FAQ-CervanTeX.html | sed -e 's/file:.*//g' -e 's/[0-9\.\ ]*$//g' -e 's/\[[0-9]*\]//g' -e 's/#next//g' -e 's/References//g' -e 's/Página siguiente Página anterior Índice general//g' | tr -s '\n' } extrae_faq_address (){ local first_line local last_line file=$target.latin1 first_line=`grep -n "La versión más reciente de esta FAQ está disponible en" $file | sed 's/\([0-9]\):.*/\1/g'` last_line=`wc -l $file | sed 's/\ *\([0-9]*\) .*/\1/g'` num_lines=`expr $last_line - $first_line + 2` tail -$num_lines $file | tr -s '\n' } make_toc_mail(){ echo "To: $FULLDESTINATION" echo "Newsgroups: es.comp.lenguajes.tex" echo "Organization: $ORGANIZATION" echo "Subject: FAQ-CervanTeX `extract_date`" cat mail.header echo "" test -e novedades.mail && cat novedades.mail echo "" extrae_tabla_de_materias } mail_FAQ (){ if [ -e toc.txt ]; then cat toc.txt | $SMTP_SERVER -f"$MAINTAINER_EMAIL" -F"$MAINTAINER_NAME" $DESTINATION if [ "$MAIL_STAT" = "full" ]; then cat toc.txt | inews -h fi echo "Enviado el mensaje a $DESTINATION" else echo "ERROR: No se ha encontrado el mensaje a enviar" fi } create_tex_source (){ sgml2latex --language=spanish --charset=latin \ --pass="\usepackage{times}\usepackage{hyperref}" -p a4 \ $target.sgml sed -e \ 's:\\usepackage\[english\]{babel}:\\usepackage\[spanish\]{babel}\\AtBeginDocument{\\gdef~{\\nobreakspace{}}\\catcode`\\\"=12}:g' \ $target.tex > tmp mv tmp $target.tex } process_tex_source (){ $LATEX $target.tex $LATEX $target.tex $LATEX $target.tex dvips -o $target.ps $target pdflatex $target.tex } create_html (){ sgml2html --language=spanish --charset=latin $target.sgml } create_txt_files (){ CODEPAGES="applemac cp850 cp437 ms-ansi" sgml2txt --filter --language=spanish --charset=latin $target.sgml mv $target.txt $target.latin1 for i in $CODEPAGES; do cp $target.latin1 $target.$i recode latin1..$i $target.$i done unix2dos $target.ms-ansi } create_other_formats (){ OTHER_FORMATS="sgml2txt sgml2rtf sgml2lyx" # sgml2info for i in $OTHER_FORMATS; do echo $i $i --language=spanish --charset=latin $target.sgml done } rebuild_FAQ () { clean_all_old process_sgml_source create_tex_source create_html process_tex_source create_txt_files create_other_formats make_toc_mail > toc.txt clean_files } add_to_begin(){ if [ ! -e "$1" ]; then touch $1 fi test ! -e "$2" && exit cp "$1" "$1.last" cat "$2" > "$1" cat "$1.last" >> "$1" } cvs_commit(){ committed="no" rm -f $SOURCEDIR/novedades.cvs if [ -e novedades ]; then echo "Encontrado archivo de novedades" else echo " * Cambios menores" > novedades fi cp novedades $SOURCEDIR/novedades.cvs ( cd $SOURCEDIR && cvs commit -Fnovedades.cvs $TARGET && commited="yes" ) test "$commited" = "no" && ( echo "Error al hacer el commit"; exit ) process_sgml_source echo "--" > novedades.add echo `extract_date` >> novedades.add echo "--" >> novedades.add cat novedades >> novedades.add add_to_begin "novedades.mail" "novedades.add" add_to_begin "historia" "novedades.add" rm -f novedades.add novedades } case $1 in prueba) make_toc_mail ;; commit) cvs_commit ;; mail|mail-local) export DESTINATION="agmartin@aq.upm.es" export FULLDESTINATION="agmartin@aq.upm.es (Agustín Martín - pruebas)" rebuild_FAQ mail_FAQ ;; mail-lista|lista-mail) export DESTINATION="spanish-tex@eunet.es, sptex@ls.cica.es" export FULLDESTINATION="spanish-tex@eunet.es (Lista de TeX en castellano), \ sptex@ls.cica.es (Lista de TeX en castellano)" export MAIL_STAT=full rebuild_FAQ sitecopy --update webpublico sitecopy --update faq-cervantex mail_FAQ rm -f novedades.mail ;; update-web) rebuild_FAQ sitecopy --update webpublico sitecopy --update faq-cervantex ;; clean) clean_all_old ;; *) export DESTINATION="agmartin@aq.upm.es" export FULLDESTINATION="agmartin@aq.upm.es (Agustín Martín - pruebas)" rebuild_FAQ ;; esac