Selon [EMAIL PROTECTED]:
> Bonjour,
Bonjour,
> Voici donc quatre patchs pour tenter d'ameliorer les choses:
> 1/ patch1
> corrige deux typo (treshold->threshold et launch->launched)
> remplace tous les '$? ==' et '$? !=' par '$? -eq' et '$? -ne'
>
> 2/ patch2
> corrige d'autres '==' et '!=' en '-eq' et '-ne'
> 4/ patch.eaglediag
> - suppression du mot-cle function
Je vais regarder ça. En gros c'est écrire du shell historique.
Ça a l'air d'être des petites modifs donc elles seront intégrés sur le CVS.
> 3/ patch.setvars
> simplifications pour setvars
> - fonction readConf pour lire les valeurs dans eagle-conf
> - utilisation de case dans encapsToPppox et pour determiner la version du
> kernel
Faut que je regarde le détail avant d'émettre un avis ;-).
> 4/ patch.eaglediag
> - simplfication de VERSION_DIAG
>
> J'ai aussi essaye de reduire le nombre de processus lances a l'execution
> en reduisant les pipe genre 'grep | sed | cut' par du awk
C'est discutable.
La ligne de awk que tu proposes parse tout le fichier
donc l'économie n'est pas évidente.
D'autre part on essaie de limiter les dépendances sur les programmes
qui ne sont pas toujours présents.
Donc je propose à Baud un sed pour changer ;-)
VERSION_DIAG=`sed -n -r -e \
's/^# \$Id: eaglediag,v ([^ ]*) ([^ ]*) .*/\1 \2/p; 2Q' \
</usr/sbin/eaglediag`
Une seule commande et on ne parse que deux lignes.
Ou même (économie de bout de chandelle oblige) :
VERSION_DIAG=`sed -n -r -e \
'1t; s/^# \$Id: eaglediag,v ([^ ]*) ([^ ]*) .*/\1 \2/p; 2Q' \
</usr/sbin/eaglediag`
Et on ne parse qu'une seule ligne.
> Je travaille actuellement aux problemes des substitutions pour supporter
> les options longues.
Oui c'est à cela que servent les 'set -- "${@//#--help/-h}"'
Je te donne un code qui marche (enfin j'ai pas testé) :
for param; do
param="`echo "$param" | sed "s/^--help/-h/"`"
param="`echo "$param" | sed "s/^--version/-v/"`"
# ...
shift
set "toto" "$@" "$param"
shift
done
# On fait tourner les paramètres et à chaque fois on arrange
# le premier paramètre.
# "toto" est une astuce, si un paramètre commence par un tiret ("-")
# il ne sera pas confondu avec une option de la commande interne "set"
# (et je crois que "set --" ne marche pas avec le shell historique).
# Note : les guillemets sont tous importants !
Tu remarqueras que c'est plus long et plus compliqué.
Donc on ne devrait pas intégrer cela tel quel.
Mais si tu as beaucoup plus simple, on prend ;-).
> --
> Stéphane
Cyril.