]> git.donarmstrong.com Git - cran2deb.git/blobdiff - trunk/exec/update
* fix wrong right bracket
[cran2deb.git] / trunk / exec / update
index 982fa6c055457b6e3ce309b1abbfac66de28d260..7e8b81bc87490fac6fd0bd11159e134867b55b5f 100755 (executable)
@@ -1,4 +1,4 @@
-#!/usr/bin/rc
+#!/bin/bash
 
 ## DOC: cran2deb update
 ## DOC:     update the cran2deb cache and database
@@ -6,34 +6,45 @@
 ## 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" ]) {
+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 || exit 1
+sys=$(cran2deb which_system)
+mkdir -p "${cachedir}"/"$sys"
 #update_period=10800
 update_period=108
-if (~ $1 full || ![ -e /var/cache/cran2deb/cache.rda ] ) {
-    delta=`{awk 'END{print '^$update_period^'+1}' </dev/null}
+
+cache_rda="${cachedir}/cache.rda"
+if [ ! $1 = full ] || [ ! -e "${cache_rda}" ]; then
+    delta=$(($update_period+1))
     echo Forcing cache update
-} else {
-    delta=`{awk 'END{print '^`{date +%s}^-^`{stat -c '%Y' /var/cache/cran2deb/cache.rda}^'}' </dev/null}
+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.
-}
-if (![ -e /var/cache/cran2deb/cache.rda ] || [ $delta -gt $update_period ]) {
-    mode=create
-    if ([ -e /var/cache/pbuilder/base-cran2deb-$sys.tgz ]) {
-        mode=update
-    }
-    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
+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