J'essayais d'utiliser eagleconfig (futur paquet debian) pendant la
postinstallation du paquet utils.
Je suis tomber sur quelques bugs et insuffisances que je décris dans la suite du
mail. Pour chacune je propose une correction :-).
(ligne 47) Remplacer
if [ -z $LSTOPTIONS ] ; then
par
if [ -z "$LSTOPTIONS" ] ; then
Comme j'ai un LSTOPTIONS avec des espaces, sans guillement j'ai trop
d'arguments.
(ligne 66 et 71) Remplacer
eval $NAME=$VALUE
par
eval "$NAME='$VALUE'"
(ligne 77) et remplacer
eval $NAME="$VALUE"
par
eval "$NAME='$VALUE'"
Toujours pour supporter les VALUE contenant des espaces.
Sinon j'ai repéré un soucis dans l'écriture des fichiers (pap|chap)-secrets.
Lors de la purge de mon paquet, il faudrait, dans l'idéal, que toutes les
informations puisse être supprimées ; mais il est impossible à la lecture de
pap-secrets de savoir quoi a été écrit par qui.
Par ailleurs j'ai testé eagleconfig en le relançant plusieurs fois et en
changeant à chaque fois mon identifiant : les informations s'accumulent dans
chap-secrets.
Pour régler ce problème on pose des commentaires pour marquer le début et la fin
d'une section. Je me suis inspiré de ton code et j'ai emprunté l'utilisation de
perl à Roland (classique dans le paquetage il semble) :
##------------------------------------------------
if [ "$ISP_LOGIN" != "keep" ] ; then
echo "user \"$dsl_login\"" > $TMP
cat $PPP_OPTIONS_ADSL | grep -v "^user " >> $TMP
cat $TMP > $PPP_OPTIONS_ADSL
echo "user \"[EMAIL PROTECTED]"" > $PPP_OPTIONS_MIRE
echo "pty \"$SBIN_DIR/fctStartAdsl -i\"" >> $PPP_OPTIONS_MIRE
cat $EU_SCRIPT_DIR/options >> $PPP_OPTIONS_MIRE
if [ $dsl_encrypt_passwd = "true" ]; then
with_pwd="chap"; without_pwd="pap"
else
with_pwd="pap"; without_pwd="chap"
fi
if [ ! -f $PPP_DIR/${with_pwd}-secrets ]; then
umask 0077; touch $PPP_DIR/${with_pwd}-secrets
chown root.root $PPP_DIR/${with_pwd}-secrets
fi
/usr/bin/perl -nle '$i=1 if /### BEGIN DEBCONF SECTION: EAGLE/; print if $i
== 0;' $PPP_DIR/${with_pwd}-secrets >$TMP
cat >>$TMP <<EOF
### BEGIN DEBCONF SECTION: EAGLE-USB
"$dsl_login" * "$dsl_passwd" *
"[EMAIL PROTECTED]" * "adsl" *
### END DEBCONF SECTION: EAGLE-USB
EOF
/usr/bin/perl -nle 'print if $i == 1; $i=1 if /### END DEBCONF SECTION:
EAGLE/;' $PPP_DIR/${with_pwd}-secrets >>$TMP
cat $TMP >$PPP_DIR/${with_pwd}-secrets
if [ -f $PPP_DIR/${without_pwd}-secrets ]; then
/usr/bin/perl -nle '$i=1 if /### BEGIN DEBCONF SECTION: EAGLE/; print if
$i == 0;' $PPP_DIR/${without_pwd}-secrets >$TMP
/usr/bin/perl -nle 'print if $i == 1; $i=1 if /### END DEBCONF SECTION:
EAGLE/;' $PPP_DIR/${without_pwd}-secrets >>$TMP
cat $TMP >$PPP_DIR/${without_pwd}-secrets
fi
fi
##-------------------------------------------------
Pas d'autre suggestion pour l'instant :-).
Merci,
mcoolive.