#!/bin/bash ## DOC: cran2deb update ## DOC: update the cran2deb cache and database ## DOC: cran2deb update full ## DOC: force a full update of the cran2deb cache and database ## DOC: set -e cachedir="${CRAN2DEB_CACHE:-/var/cache/cran2deb}/results/" pbuildercache="${CRAN2DEB_PBUILDER_CACHE:-/var/cache/pbuilder/}" umask 002 root=$1 if [ -z "$root" ]; then echo "You need to specify the root of your installation, i.e. the folder in which to find the exec subdirectory." exit 1 fi shift sys=$(cran2deb which_system) mkdir -p "${cachedir}"/"$sys" #update_period=10800 update_period=108 cache_rda="${cachedir}/cache.rda" if [ ! $1 = full ] || [ ! -e "${cache_rda}" ]; then delta=$(($update_period+1)) echo Forcing cache update else seconds_time=$(date +%s) seconds_file=$(stat -c '%Y' "${cache_rda}") delta=$(($seconds_time-$seconds_file)) echo Cache is $delta seconds out of date, auto-update after $update_period seconds. fi if [ ! -e "${cache_rda}" ] || [ $delta -gt $update_period ]; then if [ "${CRAN2DEB_BUILD}" == "yes" ]; then mode=create if [ -e "${pbuilder_cache}"/base-cran2deb-$sys.tgz ]; then mode=update fi echo C: sudo pbuilder $mode --override-config --configfile "${CRAN2DEB_CONFDIR:-/etc/cran2deb}"/sys/"$sys"/pbuilderrc echo "Executing sudo pbuilder $mode --override-config --configfile ${CRAN2DEB_CONFDIR:-/etc/cran2deb}/sys/$sys/pbuilderrc" sudo pbuilder $mode --override-config --configfile "${CRAN2DEB_CONFDIR:-/etc/cran2deb}"/sys/"$sys"/pbuilderrc fi; echo "Executing $root/exec/update_cache $root" $root/exec/update_cache $root fi