#!/bin/sh
CWD=`pwd`
TMP=${TMP:-/tmp}
PKG=$TMP/package-kernel-modules

VERSION=${VERSION:-2.4.33.3}
# USING=${USING:-`uname -r`}
# VERSION=${VERSION:-`uname -r | sed 's/-.*//g'`}
ARCH=${ARCH:-sparc}
BUILD=${BUILD:-0}

if [ ! -d $TMP ]; then
  mkdir -p $TMP
fi
rm -rf $PKG
mkdir -p $PKG

# echo "Using /lib/modules/${USING}/"
echo
echo "Make sure you've run ./build_sparc_kernels.sh"
echo " and placed the results in this tree's /kernels"
echo " or this will be a very short ride"
echo
#echo "However you want 'em."

sleep 5

echo
echo "Prepping package framework"
echo "-----"
sleep 1
rm -rf $PKG/etc
mkdir -p $PKG/etc/rc.d
cat $CWD/rc.modules.new > $PKG/etc/rc.d/rc.modules.new
chmod 755 $PKG/etc/rc.d/rc.modules.new
mkdir -p $PKG/install

# Write out the doinst.sh:
cat << EOF > $PKG/install/doinst.sh
config() {
  NEW="\$1"
  OLD="\$(dirname \$NEW)/\$(basename \$NEW .new)"
  # If there's no config file by that name, mv it over:
  if [ ! -r \$OLD ]; then
    mv \$NEW \$OLD
  elif [ "\$(cat \$OLD | md5sum)" = "\$(cat \$NEW | md5sum)" ]; then # toss the redundant copy
    rm \$NEW
  fi
  # Otherwise, we leave the .new copy for the admin to consider...
}

config etc/rc.d/rc.modules.new

# A good idea whenever kernel modules are added or changed:
if [ -x sbin/depmod ]; then
  chroot . /sbin/depmod -a 1> /dev/null 2> /dev/null
fi

EOF


for CPU in sun4cdm sun4dm_smp sun4u; do

  echo -n "Cleaning up package... "
  rm -rf $PKG/lib $PKG/install/slack-desc
  echo "done."

  echo
  echo "Populating the module tree for $CPU"
  echo "-----"
  sleep 1
  mkdir -p $PKG/lib/modules
  ( cd $PKG/lib/modules/
    tar -zxvf $CWD/../../../kernels/$CPU.s/$VERSION/modules.tar.gz
  )

  echo
  echo "Finalizing installation for $CPU"
  echo "-----"
  sleep 1
  cat $CWD/slack-desc-$CPU > $PKG/install/slack-desc
#  ( cd $PKG/lib/modules/$VERSION
#    ln -sf /usr/src/linux-$VERSION/ build
#  )

  ( cd $PKG
    if [ "$CPU" = "sun4u" ]; then
      makepkg -l y -c n $TMP/kernel-modules-$CPU-$VERSION-${ARCH}64-$BUILD.tgz
    else
      makepkg -l y -c n $TMP/kernel-modules-$CPU-$VERSION-$ARCH-$BUILD.tgz
    fi
  )

done
