#!/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 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 /var/cache/cran2deb/results/$sys #update_period=10800 update_period=108 if [ ! $1 = full ] || [ ! -e /var/cache/cran2deb/cache.rda ]; then delta=$(($update_period+1)) echo Forcing cache update else seconds_time=$(date +%s) seconds_file=$(stat -c '%Y' /var/cache/cran2deb/cache.rda) delta=$(($seconds_time-$seconds_file)) echo Cache is $delta seconds out of date, auto-update after $update_period seconds. fi if [ ! -e /var/cache/cran2deb/cache.rda ] || [ $delta -gt $update_period ]; then mode=create if [ -e /var/cache/pbuilder/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