| #! /bin/sh | |
| # | |
| # ${R_HOME}/tools/rsync-recommended | |
| : ${CRAN_RSYNC='cran.r-project.org::CRAN'} | |
| ## The intention here is infer TOOLS_DIR from an explicit path. | |
| ## but the user might have called it from tools, so test that case | |
| ## separately. | |
| TOOLS_DIR=`echo ${0} | sed 's%/[^/][^/]*$%%'` | |
| if test ${TOOLS_DIR} = ${0} ; then | |
| TOOLS_DIR="." | |
| fi | |
| (cd "${TOOLS_DIR}"/.. | |
| version=`cut -f1 -d' ' VERSION` | |
| if test "`cut -f2 -d' ' VERSION`" = "Patched"; then | |
| version=`echo ${version} | sed 's/\.[0-9]*$//'` | |
| version="${version}-patched" | |
| fi | |
| PKGS=`grep '^R_PKGS_RECOMMENDED *=' share/make/vars.mk | \ | |
| sed 's/.*=//'` | |
| cd src/library/Recommended | |
| ## The purpose of the rsync options is to get the timestamps on the | |
| ## downloaded files to reflect time of download. | |
| ## We can't use '-t' because then we could download a changed file | |
| ## that was older the last build and therefore would not be installed. | |
| ## The '-c' (checksum first) is necessary because otherwise all the | |
| ## files get their mtime changed whether updated or not. | |
| ## We would like to use '-C' to prevent '--delete' from removing the | |
| ## CVS subdirectory, but in some versions of rsync this adds the | |
| ## exclude patterns from .cvsignore without a way to override, so we | |
| ## try using an exclude pattern. | |
| rsync -rcIz --timeout=60 --verbose --delete --include="*.tar.gz" \ | |
| --exclude=Makefile.in --exclude=Makefile.win --exclude=Makefile --exclude=".svn" \ | |
| --exclude="CVS*" --exclude=.cvsignore --exclude="*.tgz" \ | |
| "${CRAN_RSYNC}"/src/contrib/${version}/Recommended/ . || \ | |
| { echo "*** rsync failed to update Recommended files ***" && exit 1; } | |
| ## Link each package to a simplified name so that Make has an easier | |
| ## time. Notice that as far as Make is concerned, the symlinks have | |
| ## the same timestamp as the file they point to. Don't remove the | |
| ## existing links until now in case rsync fails. | |
| echo "Creating links" | |
| rm -f *.tgz | |
| for i in ${PKGS} ; do | |
| ln -s $i*.tar.gz ${i}.tgz | |
| done | |
| ) |