overzealous help-links.sh script! (PR#1682)
ripley@stats.ox.ac.uk
ripley@stats.ox.ac.uk
Wed, 19 Jun 2002 18:30:27 +0100 (BST)
Not a bug. .R is a `hidden' private directory for R's own use.
Have you been trespassing: `including stuff the user might have
installed' suggests you have?
On Mon, 17 Jun 2002 rjvbertin@hotmail.com wrote:
> Starting html help in the current version of R has a very annoying
> side-effect. It indiscriminantly removes $HOME/.R, and replaces it with a
> virgin copy. I discovered that when all of a sudden I got complaints about
> my startup "library" not being found.
> Below is a modified version of the script that doesn't do this. It is not
> perfect yet (it shouldn't try to recreate links that already exists; there
Why: the targets of the links may well have changed? Remember that
R_HOME can change from invocation to invocation, and if there are
different R versions (even on different platforms) keeping anything is
completely inappropriate. You can't even delete just what you want to
replace, as .R might have been created by a later R version and put other
things in there.
> must be a glitch in the multi-test if lines) but it is safer than the
> previous version!
Not so. Have you read the section on BUGS in the FAQ recently?
>
> RenE Bertin
>
>
> #! /bin/sh
>
> # 20020615 RJVB : I modified this script such that it will not at each
> invocation throw away the ~/.R directory
> # with all that it contains (including stuff the user might have
> installed!!)
> # Instead, it will create what doesn't exist, and warn whenever an error
> occurs (= a dir can't be made because a file
> # with the same name exists.
> # For the links, I try to be clever, and put in only those that aren't there
> yet, but this doesn't yet function
> # correctly with the single-line-2-test expression. Therefore, all output
> from ln is thrown away :)
>
> USER_R_HOME="${HOME}/.R"
> PKGLIST="${USER_R_HOME}/doc/html/packages.html"
> SEARCHINDEX="${USER_R_HOME}/doc/html/search/index.txt"
> # RJVB: don't do this!!
> # rm -rf ${USER_R_HOME}
>
> dirs="${USER_R_HOME} ${USER_R_HOME}/doc ${USER_R_HOME}/doc/html
> ${USER_R_HOME}/doc/html/search ${USER_R_HOME}/library"
> for d in ${dirs}; do
> # RJVB
> if [ ! -e ${d} ] ;then
> mkdir -p ${d}
> elif [ ! -d ${d} ] ;then
> echo "Warning: ${d} already exists but is not a directory!"
> fi
> done
>
> for f in AUTHORS COPYING THANKS; do
> # RJVB
> if [ -f ${R_HOME}/${f} -a ! -e ${USER_R_HOME}/${f} ] ;then
> ln -s ${R_HOME}/${f} ${USER_R_HOME}/${f}
> fi
> done
>
> # RJVB
> if [ -d ${R_HOME}/doc/manual -a ! -e ${USER_R_HOME}/doc/manual ] ;then
> ln -s ${R_HOME}/doc/manual ${USER_R_HOME}/doc/manual
> fi
>
> for f in ${R_HOME}/doc/html/*; do
> # RJVB
> if [ -f $f -a ! -e ${USER_R_HOME}/doc/html/${f} ] ;then
> ln -s ${f} ${USER_R_HOME}/doc/html 1>/dev/null 2>1
> fi
> done
>
> for f in ${R_HOME}/doc/html/search/*; do
> # RJVB
> if [ -f $f -a ! -e ${USER_R_HOME}/doc/html/search/${f} ] ;then
> ln -s ${f} ${USER_R_HOME}/doc/html/search 1>/dev/null 2>1
> fi
> done
>
> rm -f ${PKGLIST}
> rm -f ${SEARCHINDEX}
> cp ${R_HOME}/doc/html/packages-head.html ${PKGLIST}
>
> get_unique () {
> if test -r ${1}; then
> x="1"
> while test -r ${1}.${x}; do
> x=`echo "$x+1" | bc`
> done
> echo ${1}.${x}
> else
> echo $1
> fi
> }
>
>
> for lib in $*; do
> echo "<p><h3>Packages in ${lib}</h3>" >> ${PKGLIST}
> echo "<p><table width=\"100%\">" >> ${PKGLIST}
> if test -d ${lib}; then
> for pkg in `ls -d ${lib}/* | sed '/CVS$/d; /profile$/d'`; do
> if test -d ${pkg}; then
> pkgname=`basename ${pkg}`
> target=`get_unique ${USER_R_HOME}/library/${pkgname}`
> targetname=`basename ${target}`
> ln -s ${pkg} ${target}
> if test -r ${pkg}/TITLE; then
> pkgtitle=`cat ${pkg}/TITLE | sed "s/^${pkgname}//"`
> else
> pkgtitle=""
> fi
> echo "<tr align=\"left\" valign=\"top\">
> <td width=\"25%\"><a
> href=\"../../library/${targetname}/html/00Index.html\">
> ${pkgname}</a><td>${pkgtitle}</td></tr>" \
> >> ${PKGLIST}
>
> cat ${pkg}/CONTENTS | \
> sed "s/\/library\/${pkgname}\//\/library\/${targetname}\//;" \
> >> ${SEARCHINDEX}
>
>
> fi
> done
> fi
> echo "</table>" >> ${PKGLIST}
> echo "" >> ${PKGLIST}
> done
>
> echo "</body></html>" >> ${PKGLIST}
> ln -s ${R_HOME}/doc/html/R.css ${USER_R_HOME}/library 1>/dev/null 2>1
>
> ### Local Variables: ***
> ### mode: sh ***
> ### sh-indentation: 2 ***
> ### End: ***
>
>
> RenE J.V. Bertin
> College de France/LPPA
> 11, place Marcelin Berthelot
> 75005 Paris, France
>
> _________________________________________________________________
>
>
>
> -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
> r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
> Send "info", "help", or "[un]subscribe"
> (in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch
> _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
>
--
Brian D. Ripley, ripley@stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272860 (secr)
Oxford OX1 3TG, UK Fax: +44 1865 272595
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._