#!/bin/sh # Requerimientos: lgrind (así se llama el paquete en Debian/Ubuntu) # Crea los diffs y los procesa con lgrind (crea los .tex) diffs_texs() { for file in $ARCHIVOS; do # Continuamos sólo si existe un archivo original if [ -f ${file}.orig ]; then echo Procesando archivo ${file}; diff -u ${file}.orig ${file} > ${file}.diff; lgrind -t 8 -i -lsrc ${file}.diff > ${file}.diff.tex; rm ${file}.diff; comunes ${file}.diff.tex fi done } # Este método es igual al anterior, pero no crea los diffs, ya # que está pensado para archivos que no fueron modificados texs() { for file in $ARCHIVOS; do # No procesamos los archivos que tienen un original, ya # esos deben pasarse a la función "diffs_texs" if [ ! -f ${file}.orig ]; then echo texs - archivo ${file}; lgrind -t 8 -i -lsrc ${file} > ${file}.tex; comunes ${file}.tex fi done } # Tareas finales comunes de las funciones. # Se pasa un archivo como argumento. comunes() { # Convertimos el fichero .tex a la codificación latin1 iconv -f utf8 -t latin1 ${1} -o ${1}.latin1; mv ${1}.latin1 ${1}; # Este fix se debe a un problema con lgrind. # Reemplazamos las lineas mal generadas. sed 's/*=====================================================*/\*========================================/g' ${1} > ${1}.mo; # Convertimos los archivos latin1 a utf8 if file ${1}.mo | grep -q "ISO-8859"; then iconv -f latin1 -t utf8 ${1}.mo > ${1} rm ${1}.mo echo " Convertido de ISO-8859 a UTF-8" else mv ${1}.mo ${1} fi } # include ARCHIVOS=$(find include | grep -v ".svn" | grep -v ".mo") diffs_texs # kernel ARCHIVOS=$(find kernel | grep -v ".svn" | grep -v ".mo") diffs_texs # mm ARCHIVOS=$(find mm | grep -v ".svn" | grep -v ".mo") diffs_texs # lib ARCHIVOS=$(find lib -name "*.c" -o -name "*.s" | grep -v ".svn") texs # chgprio, mipid y solocpu ARCHIVOS=$(find . -name chgprio.c -o -name mipid.c -o -name solocpu.c | grep -v disquette) texs