]> git.donarmstrong.com Git - cran2deb.git/blob - pkg/trunk/exec/update
remaining archive transistion
[cran2deb.git] / pkg / trunk / 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 /etc/cran2deb -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 mini-dinstall --batch -c /etc/cran2deb/mini-dinstall.conf || exit 1
17 update_period=10800
18 if (~ $1 full || ![ -e /var/cache/cran2deb/cache.rda ] ) {
19     delta=`{awk 'END{print '^$update_period^'+1}' </dev/null}
20     echo Forcing cache update
21 } else {
22     delta=`{awk 'END{print '^`{date +%s}^-^`{stat -c '%Y' /var/cache/cran2deb/cache.rda}^'}' </dev/null}
23     echo Cache is $delta seconds out of date.
24 }
25 if (![ -e /var/cache/cran2deb/cache.rda ] || [ $delta -gt $update_period ]) {
26     mode=create
27     if ([ -e /var/cache/pbuilder/base-cran2deb.tgz ]) {
28         mode=update
29     }
30     sudo pbuilder $mode --override-config --configfile /etc/cran2deb/pbuilderrc
31     $root/exec/update_cache $root
32 }
33 if (![ -e /var/cache/cran2deb/cran2deb.db ] || [ $delta -gt $update_period ]) {
34     cat $root/data/^(populate_licenses quit) | $root/exec/license $root
35     cat $root/data/^(populate_depend_aliases populate_sysreq populate_forcedep quit) | $root/exec/depend $root
36 }
37