f4391041df6ed4dfc7b312f644dfc79dbcf76a87
[myplc.git] / plc.d / bootcd-kernel
1 #!/bin/bash
2 #
3 # priority: 0999
4 #
5 # $Id$
6 # Build BootCD variants with kernels specified in /etc/planetlab/bootcd-variants
7
8 # Source function library and configuration
9 . /etc/plc.d/functions
10
11 # Be verbose
12 set -x
13
14 case "$1" in
15     start)
16         MESSAGE=$"Creating BootCD variants"
17         dialog "$MESSAGE"
18
19         success=0
20         for i in /usr/share/bootcd-*; do
21                 pushd $i
22                 basearch=$(echo $i | awk -F- '{ print $NF }')
23                 arch=$(echo $basearch | sed 's/i386/i686/')
24                 for j in /etc/planetlab/bootcd-variants/*; do
25                         name="${j##*/}"
26                         url=$(cat "$j" | sed "s!@BASEARCH@!$basearch!g;s!@ARCH@!$arch!g")
27                         if test -d "$name"; then
28                                 test build/isofs/bootcd.img -nt "$name/isofs/bootcd.img" || continue
29                         elif test "$name" = default; then
30                                 # Not ideal, but...
31                                 grep -q support@ build/isofs/kernel || continue
32                         fi
33                         if test "$url" != $(echo "$url" | sed s#[:/]##); then
34                                 ./kvariant.sh "$name" "$url"
35                         else
36                                 dir=$(mktemp -d -p /var/tmp)
37                                 yumdownloader --destdir "$dir" "$url"
38                                 ./kvariant.sh "$name" "$dir"/"$url"*
39                                 rm -fr "$dir"
40                         fi
41                         if test "$name" = default; then
42                                 rm -fr orig
43                                 mv build orig
44                                 mv default build
45                         fi
46                 done
47                 popd
48         done
49         test $success = 0
50         check
51
52         result "$MESSAGE"
53         ;;
54 esac
55
56 exit $ERRORS