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.

Reply via email to