#! /bin/sh

if test "$EUID" -ne 0; then
  echo "Must be run as root"
  exit 1
fi

default_haveto=no
if test "$1" = "-f"; then
    default_haveto=yes
fi
	
test -d /etc/preload.d || exit 0
mkdir -p /var/cache/preload || exit 1
now=`date +%s`
for f in /etc/preload.d/* ; do
  base=`basename $f`
  out="/var/cache/preload/${base}.preload"
  # check if we need to recheck the layout
  # default no
  haveto=$default_haveto
  # it doesn't exist yet, so perhaps we should ;)
  if ! test -f $out; then
    haveto=yes
  else
    # some packages were installed since last time, so we recheck
    if test -f /var/lib/rpm/Packages; then
      test /var/lib/rpm/Packages -nt $out && haveto=yes
    fi
    modtime=`ls -l --time-style=+%s $out | awk '{print $6}'`
    # if it was modified more than 20 days ago, recheck
    test $((modtime+20*24*3600)) -lt $now && haveto=yes
  fi
  test "$haveto" = no && continue
  echo "Laying out $f"
  prepare_preload -c < $f > $out.new
  rm -f $out
  mv $out.new $out
done
