]> git.donarmstrong.com Git - cran2deb.git/blob - tags/gsoc_final/exec/update
a2cdf0160d791e4de0cdef38bef2f1d3b9e4acfb
[cran2deb.git] / tags / gsoc_final / exec / update
1 #!/usr/bin/rc
2 ## DOC: cran2deb update
3 ## DOC:     update the cran2deb cache and database
4 ## DOC: cran2deb update full
5 ## DOC:     force a full update of the cran2deb cache and database
6 ## DOC:
7
8 umask 022
9 root=$1
10 shift
11 for (x in `{find $root/etc -type f -name '*.in'}) {
12     y=`{echo $x | sed -e 's,.in$,,'}
13     sed -e 's:@ROOT@:'^$root^':g' <$x >$y
14 }
15 mkdir -p /var/cache/cran2deb/results || exit 1
16 if ([ ! -e $root/var/archive ]) {
17     # I symbolically link this into /var/www/
18     mkdir $root/var/archive || exit 1
19 }
20 mini-dinstall --batch -c $root/etc/mini-dinstall.conf || exit 1
21 update_period=10800
22 if (~ $1 full || ![ -e /var/cache/cran2deb/cache.rda ] ) {
23     delta=`{awk 'END{print '^$update_period^'+1}' </dev/null}
24     echo Forcing cache update
25 } else {
26     delta=`{awk 'END{print '^`{date +%s}^-^`{stat -c '%Y' /var/cache/cran2deb/cache.rda}^'}' </dev/null}
27     echo Cache is $delta seconds out of date.
28 }
29 if (![ -e /var/cache/cran2deb/cache.rda ] || [ $delta -gt $update_period ]) {
30     mode=create
31     if ([ -e /var/cache/pbuilder/base-cran2deb.tgz ]) {
32         mode=update
33     }
34     sudo pbuilder $mode --override-config --configfile $root/etc/pbuilderrc
35     $root/exec/update_cache $root
36 }
37 if (![ -e /var/cache/cran2deb/cran2deb.db ] || [ $delta -gt $update_period ]) {
38     cat $root/data/^(populate_licenses quit) | $root/exec/license $root
39     cat $root/data/^(populate_depend_aliases populate_sysreq populate_forcedep quit) | $root/exec/depend $root
40 }
41