]> git.donarmstrong.com Git - cran2deb.git/blobdiff - branch/split_build/exec/update
rename double_build -> split_build
[cran2deb.git] / branch / split_build / exec / update
diff --git a/branch/split_build/exec/update b/branch/split_build/exec/update
new file mode 100755 (executable)
index 0000000..b457c91
--- /dev/null
@@ -0,0 +1,30 @@
+#!/usr/bin/rc
+## 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:
+
+umask 002
+root=$1
+shift
+sys=`{cran2deb which_system}
+mkdir -p /var/cache/cran2deb/results/$sys || exit 1
+update_period=10800
+if (~ $1 full || ![ -e /var/cache/cran2deb/cache.rda ] ) {
+    delta=`{awk 'END{print '^$update_period^'+1}' </dev/null}
+    echo Forcing cache update
+} else {
+    delta=`{awk 'END{print '^`{date +%s}^-^`{stat -c '%Y' /var/cache/cran2deb/cache.rda}^'}' </dev/null}
+    echo Cache is $delta seconds out of date.
+}
+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
+    sudo pbuilder $mode --override-config --configfile /etc/cran2deb/sys/$sys/pbuilderrc
+    $root/exec/update_cache $root
+}
+