| #! /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 |
| ) |