Page suivantePage précédenteTable des matières

4. Script de vérification

Ceci est un script pour le shell Korn pour vérifier les programmes de mise en forme. Il a besoin de "pdksh*.rpm" à partir du cdrom 'contrib' de Linux. Sauvez ce fichier en tant que fichier 'texte' et appliquez sur ce fichier la commande chmod a+rx. Vous pouvez réécrire ce script shell en Perl pour pouvoir l'utiliser sous Windows 95/NT ou MSDOS. Enlevez les commentaires de la variable PRGM pour le faire pointer sur bcpp, cb ou indent.


#!/bin/ksh
# Programme de vérification pour contrôler des embellisseurs C++ comme 'bcpp', 'indent' ou 'cb'
############################################################
# Copyright
# Les droits d'auteurs sont sous les termes de la GNU/GPL.
# Auteur: Al Dev (Alavoor Vasudevan) alavoor@yahoo.com
# Traducteur : Robert Jacolin rjacolin@yahoo.fr
############################################################
check_beautify_now()
{
 # Efface tous les fichiers temporaires ...
 \rm -f ${TMP_FILE}
 \rm -f ${TMP_CPPFILE}*.*
 FNAME=$1
 if [ ! -f ${FNAME} ]; then
 print "\nErreur : Le fichier ${FNAME} n'existe pas!!. Arrêt immédiat ...."
 exit
 fi
 \cp  -f ${FNAME} ${TMP_CPPFILE}.cpp
 ${COMPILER} -c ${TMP_CPPFILE}.cpp
 if [ ! -f ${TMP_CPPFILE}.o ]; then
 print "Erreur Fatale : Impossible de compiler ${FNAME}. Arrêt immédiat ... "
 exit
 fi
 \mv -f ${TMP_CPPFILE}.o ${TMP_CPPFILE}_orig.o
 aa=`basename $PRGM`
 print "\nEn cours, vérification de $aa sur ${FNAME}"
 ${PRGM} ${TMP_CPPFILE}.cpp
 ${COMPILER} -c ${TMP_CPPFILE}.cpp
 \rm -f $TMP_FILE
 diff ${TMP_CPPFILE}.o ${TMP_CPPFILE}_orig.o 1> $TMP_FILE 2>> $TMP_FILE
 result=""
 result=`wc -c $TMP_FILE | awk '{print $1}' `
 if [ "$result" = "0" ]; then
 print "Succés!! La mise en forme de $aa fonctionne proprement!!\n"
 else
 print "Erreur Fatale : Quelque chose ne va pas!! La mise en forme ne fonctionne pas!!"
 exit
 fi
#       ${COMPILER} -S ${TMP_CPPFILE}.cpp
#       diff ${TMP_CPPFILE}.s ${TMP_CPPFILE}_orig.s
 # Efface tous les fichiers temporaires ....
 \rm -f ${TMP_FILE}
 \rm -f ${TMP_CPPFILE}*.*
}
########## La partie principale du programme commence ici ##################
#PRGM=/usr/bin/bcpp
#PRGM=/usr/bin/cb
PRGM=/usr/bin/indent
COMPILER=/usr/bin/g++
TMP_FILE=beautify.tmp
TMP_CPPFILE=beautify-tmp_cppfile
print -n "Entrez le nom du fichier C++ <valeur par défaut *.cpp> : "
read ans
if [ "$ans" = "" -o "$ans" = " " ]; then
 ans="ALL"
else
 FILENAME=$ans
fi
# Efface tous les fichiers temporaires ....
\rm -f ${TMP_FILE}
\rm -f ${TMP_CPPFILE}*.*
if [ "$ans" != "ALL" ]; then
 check_beautify_now ${FILENAME}
else
 ls *.cpp |
 while read FILENAME
 do
 check_beautify_now ${FILENAME}
 done
fi


Page suivantePage précédenteTable des matières