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