On Sun, Jan 09, 2000 at 06:40:31PM +0100, Fran�ois BOISSON wrote:
> En fait, le probl�me est plus compliqu�, je cr�e un utilisateur (un
> �l�ve en fait). Bon, il se met au travail (un jour) et appelle netscape
> un jour pour consulter une doc format HTML par exemple (o� m�me aller
> sur Internet). netscape cr�e � ce moment l� les fichiers
> /home/<tartenpion>/.netscape/* dont le fichier preferences.js avec des
> valeurs par d�fauts dont la page "home.netscape.com") qui, dans la
> pratique, ne sont jamais chang�es par les �l�ves. Chaque fois que l'un
> d'entre eux consulte une doc HTML, la ligne d�croche. J'ai bien
> r�guli�rement modifi� quelques fichiers preferences.js mais, � ce jour,
> en gros 1 �l�ve sur deux n'a pas utilis� netscape (�a me laisse songeur
> d'ailleurs). Je voudrais donc agir lors de la cr�ation de ces fichiers
> (je ne veux pas forcer les utilisateurs � ne plus y toucher). Je n'ai
> pas vu de fichiers de pr�f�rence par d�faut mais par contre ai vu dans
> le code de communicator ce qui ressemble au fichier "preference.js".
> Peut �tre que les concepteurs de netscape veulent obliger le premier
> utilisateur � se connecter au moins une fois sur leur site! 

Apparemment, tu n'as pas install� netscape par l'interm�diaire d'un paquet
Debian. Pour r�soudre le probl�me que tu �voques --- connexion forc�e la
premi�re fois chez Netscape --- le paquet Debian utilise un wrapper qui, la
o� il est situ�, est appel� � la place du binaire Netscape. Ce wrapper, un
script de shell Bourne, effectue les diverses initialisations, recopie un
fichier preferences.js mis au point par l'administrateur, et appelle le binaire
netscape avec l'URL extraite du fichier preferences.js --- ce qui r�sout ton
probl�me.

Chez Debian, l'URL de d�part est bien s�r http://www.debian.org, mais libre �
l'administrateur de d�finir l'URL qu'il veut dans le fichier preferences.js
qui sert de squelette.

Donc, le plus simple serait que tu passes par le paquet Debian ( que tu peux
�tromper� en lui passant une version de netscape qui ne soit pas libc6 ---
c'est ce que j'ai fait --- en renommant simplement le fichier .tar.gz 
r�cup�r� chez Netscape du nom attendu par le paquet Debian).

A titre d'illustration, je te joins le wrapper utilis� par le paquet.

Si ce n'est pas suffisamment clair, tu n'as qu'� demander :)

A+
-- 
Thierry LARONDE
[EMAIL PROTECTED]
website : http://www.polynum.com
#! /bin/bash -e
###############################################################################
#
# Netscape Wrapper -- written by H. Peter Anvin <[EMAIL PROTECTED]>
#
# (97.06.28-98.11.12)  Modified for Debian by Brian White <[EMAIL PROTECTED]>
#
###############################################################################


#
# Defaults
#
netscape=/usr/lib/netscape/netscape
nsremote=/usr/bin/X11/netscape
prefskel=/usr/lib/netscape/.netscape
prefetc=/etc/skel/.netscape
prefdir=$HOME/.netscape
pref=$prefdir/preferences.js
oldpref=$prefdir/preferences
pwd=`pwd`


#
# Try calling existing netscape with URL, if fail then start new one.
#
showurl () {
    case "$1" in
        *:*)    url="$1" ;;
        /*)     url="file:$1" ;;
        *)      if [ -e "$1" ]
                   then url=`echo "file:$pwd/$1" | sed -e 's:///*:/:g'`
                   else url=$1
                fi ;;
    esac
            
    if echo $DISPLAY | egrep -q "^:"; then
        $nsremote -noraise -remote "openURL($url, new_window)" 2>/dev/null \
            || exec $netscape "$url"
    else
            exec $netscape "$url"
    fi
}


#
# Don't allow running netscape as root
#
if [ $UID -eq 0 -o $EUID -eq 0 ]; then
    echo "$0: Cannot be run an root (for security reasons)"
    exit 1
fi


#
# Set some env vars to make things work better
#
#LD_LIBRARY_PATH=/usr/lib/netscape:$LD_LIBRARY_PATH
MOZILLA_HOME=/usr/lib/netscape
NPX_PLUGIN_PATH=$HOME/.netscape/plugins:/usr/local/lib/netscape/plugins:/usr/lib/netscape/plugins
display=$DISPLAY
export MOZILLA_HOME NPX_PLUGIN_PATH display 


#
# Fix "locale" problems when printing to postscript
#
# If the locale uses a decimal separator other than a point printf 
# will return something other than 1.0
#

pnt=`printf "%1.1f" 1 2>/dev/null`

if [ "$pnt" != "1.0" ]; then
    # Perhaps we have a "dangerous" value for LANG or LC_NUMERIC. Let's
    # try a "safe" value for LC_NUMERIC.
    LC_NUMERIC=C
    export LC_NUMERIC
    pnt=`printf "%1.1f" 1 2> /dev/null`

    if [ "$pnt" != "1.0" ]; then
        # No, it is LC_ALL which is bad. Set LC_*=$LC_ALL for every category 
        # (as expected) except LC_NUMERIC, and then unset LC_ALL.
        LC_COLLATE=$LC_ALL
        LC_CTYPE=$LC_ALL
        LC_MESSAGES=$LC_ALL
        LC_MONETARY=$LC_ALL
        LC_TIME=$LC_ALL
        unset LC_ALL
        export LC_ALL LC_COLLATE LC_CTYPE LC_MESSAGES LC_MONETARY LC_CTIME
        pnt=`printf "%1.1f" 1 2> /dev/null`

        if [ "$pnt" != "1.0"]; then
            # running out of ideas...
            unset LANG
            export LANG
            pnt=`printf "%1.1f" 1 2> /dev/null`

            if [ "$pnt" != "1.0"]; then
                echo "Warning: lang/locale settings will cause printing 
problems"
            fi
        fi
    fi
fi


#
# Make user copy of default files unless they already exist
#
if [ -r $oldpref -a ! -r $pref ]; then
    useold=true
else
    useold=false
fi
if [ -d $prefskel ]; then
    if [ ! -d $prefdir ]; then
        mkdir -p $prefdir
    fi
    cd $prefskel
    for i in *; do
        if [ ! -e $prefdir/$i ]; then
            cp $i $prefdir/$i;
        fi
    done
fi
if [ -d $prefetc ]; then
    if [ ! -d $prefdir ]; then
        mkdir -p $prefdir
    fi
    cd $prefetc
    for i in *; do
        if [ ! -e $prefdir/$i ]; then
            cp $i $prefdir/$i;
        fi
    done
fi
if $useold; then
    rm -f $pref
    echo "Removing $pref so it can be generated from $oldpref"
fi
cd $pwd


#
# Decide what to do...
#
if [ $# -gt 1 ]; then
    exec $netscape "$@"
elif [ $# -eq 1 ]; then
    if [ `echo $1 | cut -c1` != '-' ]; then
        showurl "$1"
    else
        exec $netscape "$@"
    fi
elif [ -f $pref ]; then
    homepage=`egrep '^user_pref.*"browser.startup.homepage"' $pref | sed -e 
's/^.*".*".*"\(.*\)".*$/\1/'`
    strtpage=`egrep '^user_pref.*"browser.startup.page"' $pref | sed -e 
's/^.*".*", *\([0-9]*\).*$/\1/'`
    if [ -n "$strtpage" ]; then
        if [ "$strtpage" -ne 1 ]; then
            homepage=""
        fi
    fi
    if [ -n "$homepage" ]; then
        showurl "$homepage"
    else
        exec $netscape
    fi
else
    exec $netscape
fi

Répondre à