#!/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="/var/cache/cran2deb/results/" pbuildercache="/var/cache/pbuilder/" if [ -e /etc/cran2deb/config ]; then . /etc/cran2deb/config; elif [ -r ~/.cran2deb_config ]; then . ~/.cran2deb_config; fi; 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 mode=create if [ -e "${pbuilder_cache}"/base-cran2deb-$sys.tgz ]; then mode=update fi echo C: sudo pbuilder $mode --override-config --configfile /etc/cran2deb/sys/$sys/pbuilderrc echo "Executing sudo pbuilder $mode --override-config --configfile /etc/cran2deb/sys/$sys/pbuilderrc" sudo pbuilder $mode --override-config --configfile /etc/cran2deb/sys/$sys/pbuilderrc echo "Executing $root/exec/update_cache $root" $root/exec/update_cache $root fi