Add catalyst.conf path replacement to rebuild-kernel.sh
[systemrescuecd.git] / buildscripts / rebuild-kernel.sh
1 #!/bin/bash
2
3 set -o pipefail
4 set -o errexit
5
6 PROG="${0}"
7 ISODIR=/worksrc/isofiles
8 REPOSRC=/worksrc/sysresccd-src
9 REPOBIN=/worksrc/sysresccd-bin
10 CATALYSTDIR=/var/tmp/catalyst
11
12 usage()
13 {
14         cat <<EOF
15 Usage: ${PROG} [options] <imagename>
16
17 Build the distribution kernel (and other things?)
18
19 imagename: rescue64 | altker32 | altker64
20
21 Options:
22  -h|--help         Display this screen and exit
23  -i ISODIR         Directory containing the iso file to rebuild ($ISODIR)
24                      <isodir>/systemrescuecd-<arch>-current.iso
25  -r REPOSRC        Location of git systemrescuecd repo ($REPOSRC)
26  -b REPOBIN        ? ($REPOBIN)
27  -c CATALYSTDIR    Set catalyst's output directory ($CATALYSTDIR)
28
29 Distributed under the GNU Public License version 2 - http://www.sysresccd.org
30 EOF
31 }
32
33 while getopts "i:r:b:c:" Option
34 do
35         case $Option in
36                 i ) ISODIR="$OPTARG";;
37                 r ) REPOSRC="$OPTARG";;
38                 b ) REPOBIN="$OPTARG";;
39                 c ) CATALYSTDIR="$OPTARG";;
40                 * ) usage; exit 1;;  # Default, handles -h
41         esac
42 done
43 shift $(($OPTIND - 1))
44
45 IMAGENAME="$1"
46 case ${IMAGENAME} in
47         rescue64)
48                 KERTYPE=std
49                 ARCH=amd64
50                 BASEARCH=x86
51                 LIBDIR=lib64
52                 ;;
53         altker32)
54                 KERTYPE=alt
55                 ARCH=i386
56                 BASEARCH=x86
57                 LIBDIR=lib
58                 ;;
59         altker64)
60                 KERTYPE=alt
61                 ARCH=amd64
62                 BASEARCH=x86
63                 LIBDIR=lib64
64                 ;;
65         *)
66                 usage
67                 exit 1
68                 ;;
69 esac
70 VERSION=$(cat ${REPOSRC}/overlay-squashfs-${BASEARCH}/root/version)
71
72 SPEC=$(cat ${REPOSRC}/mainfiles/sysresccd-stage2-${IMAGENAME}.spec \
73     | sed "s!VERSION_STAMP!${VERSION}-${KERTYPE}!" \
74     | sed "s!ISODIR!${ISODIR}!" \
75     | sed "s!REPOSRC!${REPOSRC}!" \
76     | sed "s!REPOBIN!${REPOBIN}!" \
77     )
78 CONF=$(cat ${REPOSRC}/mainfiles/catalyst.conf \
79     | sed "s!ISODIR!${ISODIR}!" \
80     | sed "s!REPOSRC!${REPOSRC}!" \
81     | sed "s!REPOBIN!${REPOBIN}!" \
82     | sed "s!CATALYSTDIR!${CATALYSTDIR}!" \
83     )
84 (cd ${REPOSRC}/mainfiles ; nice catalyst -a -f <(echo "$SPEC") -c <(echo "$CONF") )
85
86 targetdir="${REPOBIN}/overlay-squashfs-x86/${LIBDIR}/modules"
87 rootkernel=$(ls -d ${CATALYSTDIR}/builds/default/livecd-stage2-${ARCH}-*-${KERTYPE}/isolinux)
88 rootmodule=$(ls -d ${CATALYSTDIR}/tmp/default/livecd-stage2-${ARCH}-*-${KERTYPE}/${LIBDIR}/modules)
89 kerversion=$(ls ${rootmodule})
90
91 echo "rootkernel=[${rootkernel}]"
92 echo "rootmodule=[${rootmodule}]"
93 echo "kerversion=[${rootmodule}]"
94
95 echo "cp ${rootkernel}/${IMAGENAME}* ${REPOBIN}/kernels-x86/"
96 cp ${rootkernel}/${IMAGENAME}* ${REPOBIN}/kernels-x86/
97
98 echo "(cd ${rootmodule} ; tar cfj ${targetdir}/${kerversion}.tar.bz2 ${kerversion})"
99 (cd ${rootmodule} ; tar cfj ${targetdir}/${kerversion}.tar.bz2 ${kerversion})