#!/bin/bash
-imagename="$1"
+PROG="${0}"
+ISODIR=/worksrc/isofiles
+REPOSRC=/worksrc/sysresccd-src
+REPOBIN=/worksrc/sysresccd-bin
+CATALYSTDIR=/var/tmp/catalyst
-case ${imagename} in
+usage()
+{
+ cat <<EOF
+Usage: ${PROG} [options] <imagename>
+
+Build the distribution kernel (and other things?)
+
+imagename: rescue64 | altker32 | altker64
+
+Options:
+ -h|--help Display this screen and exit
+ -i ISODIR Directory containing the iso file to rebuild ($ISODIR)
+ <isodir>/systemrescuecd-<arch>-current.iso
+ -r REPOSRC Location of git systemrescuecd repo ($REPOSRC)
+ -b REPOBIN ? ($REPOBIN)
+ -m CATALYSTDIR Set catalyst's output directory ($CATALYSTDIR)
+
+Distributed under the GNU Public License version 2 - http://www.sysresccd.org
+EOF
+}
+
+while getopts "i:r:b:c:" Option
+do
+ case $Option in
+ i ) ISODIR="$OPTARG";;
+ r ) REPOSRC="$OPTARG";;
+ b ) REPOBIN="$OPTARG";;
+ c ) CATALYSTDIR="$OPTARG";;
+ * ) usage; exit 1;; # Default, handles -h
+ esac
+done
+shift $(($OPTIND - 1))
+
+IMAGENAME="$1"
+case ${IMAGENAME} in
rescue64)
KERTYPE=std
- ARCHNAME=amd64
+ ARCH=amd64
+ BASEARCH=x86
LIBDIR=lib64
;;
altker32)
KERTYPE=alt
- ARCHNAME=i386
+ ARCH=i386
+ BASEARCH=x86
LIBDIR=lib
;;
altker64)
KERTYPE=alt
- ARCHNAME=amd64
+ ARCH=amd64
+ BASEARCH=x86
LIBDIR=lib64
;;
*)
- echo "$0: invalid argument"
+ usage
exit 1
;;
esac
+VERSION=$(cat ${REPOSRC}/overlay-squashfs-${BASEARCH}/root/version)
-(cd /worksrc/sysresccd-src/mainfiles ; nice catalyst -a -f sysresccd-stage2-${imagename}.spec)
+SPEC=$(cat ${REPOSRC}/mainfiles/sysresccd-stage2-${IMAGENAME}.spec \
+ | sed "s!VERSION_STAMP!${VERSION}-${KERTYPE}!" \
+ | sed "s!ISODIR!${ISODIR}!" \
+ | sed "s!REPOSRC!${REPOSRC}!" \
+ | sed "s!REPOBIN!${REPOBIN}!" \
+ )
+(cd ${REPOSRC}/mainfiles ; nice catalyst -a -f <(echo "$SPEC") )
-targetdir="/worksrc/sysresccd-bin/overlay-squashfs-x86/${LIBDIR}/modules"
-rootkernel=$(ls -d /var/tmp/catalyst/builds/default/livecd-stage2-${ARCHNAME}-*-${KERTYPE}/isolinux)
-rootmodule=$(ls -d /var/tmp/catalyst/tmp/default/livecd-stage2-${ARCHNAME}-*-${KERTYPE}/${LIBDIR}/modules)
+targetdir="${REPOBIN}/overlay-squashfs-x86/${LIBDIR}/modules"
+rootkernel=$(ls -d ${CATALYSTDIR}/builds/default/livecd-stage2-${ARCH}-*-${KERTYPE}/isolinux)
+rootmodule=$(ls -d ${CATALYSTDIR}/tmp/default/livecd-stage2-${ARCH}-*-${KERTYPE}/${LIBDIR}/modules)
kerversion=$(ls ${rootmodule})
echo "rootkernel=[${rootkernel}]"
echo "rootmodule=[${rootmodule}]"
echo "kerversion=[${rootmodule}]"
-echo "cp ${rootkernel}/${imagename}* /worksrc/sysresccd-bin/kernels-x86/"
-cp ${rootkernel}/${imagename}* /worksrc/sysresccd-bin/kernels-x86/
+echo "cp ${rootkernel}/${IMAGENAME}* ${REPOBIN}/kernels-x86/"
+cp ${rootkernel}/${IMAGENAME}* ${REPOBIN}/kernels-x86/
echo "(cd ${rootmodule} ; tar cfj ${targetdir}/${kerversion}.tar.bz2 ${kerversion})"
(cd ${rootmodule} ; tar cfj ${targetdir}/${kerversion}.tar.bz2 ${kerversion})
-