slitaz-dev-tools annotate mirror-tools/rootfs/usr/bin/rolling.sh @ rev 140

rolling.sh: htmlize logs
author Pascal Bellard <pascal.bellard@slitaz.org>
date Mon Jan 09 13:33:32 2012 +0100 (2012-01-09)
parents b728f44da66f
children 436434a9cf4c
rev   line source
pascal@69 1 #!/bin/sh
pascal@69 2
pascal@69 3 # Location of slitaz rolling release
pascal@123 4 rolling=/home/bellard/rolling
pascal@69 5
pascal@131 6 flavors="core-4in1 core preinit"
pascal@123 7 packages=/home/slitaz/cooking/chroot/home/slitaz/packages
pascal@69 8
pascal@69 9 # We use the last build as build environment
pascal@129 10 system=$rolling/slitaz-core.iso
pascal@69 11
pascal@140 12 htmlize()
pascal@140 13 {
pascal@140 14 echo -e "<html>\n<body>\n<pre>"
pascal@140 15 dos2unix | sed -e 's|\(Filesystem size:\).*G\([0-9\.]*M\) *$|\1 \2|' \
pascal@140 16 -e 's|.\[1m|<b>|' -e 's|.\[0m|</b>|' -e 's|.\[[0-9Gm;]*||g' \
pascal@140 17 -e ':a;s/^\(.\{1,68\}\)\(\[ [A-Za-z]* \]\)/\1 \2/;ta' \
pascal@140 18 -e 's#\[ OK \]#[ <span style="color: green">OK</span> ]#' \
pascal@140 19 -e 's#\[ Failed \]#[ <span style="color: red">Failed</span> ]#'
pascal@140 20 echo -e "</pre>\n</body>\n</html>"
pascal@140 21 }
pascal@140 22
pascal@69 23 # Build the rolling release if something is new on mirror
pascal@129 24 for flavor in $flavors ; do
pascal@140 25 if [ ! -s $rolling/slitaz-$flavor.iso -o \
pascal@131 26 $packages/$flavor.flavor -nt $rolling/slitaz-$flavor.iso -o \
pascal@129 27 $packages/packages.list -nt $rolling/slitaz-$flavor.iso ]; then
pascal@69 28 [ -d $rolling ] || mkdir -p $rolling
pascal@123 29 TMP=$rolling/tmp$$
pascal@123 30 mkdir -p $TMP/iso $TMP/fs/var/lib/tazpkg $TMP/fs/home/slitaz/cooking \
pascal@123 31 $TMP/fs/var/cache/tazpkg/cooking/packages
pascal@123 32 mount --bind $packages $TMP/fs/var/cache/tazpkg/cooking/packages
pascal@123 33 ln -s /var/cache/tazpkg/cooking/packages $TMP/fs/home/slitaz/cooking
pascal@123 34 # 3.0 compatibility...
pascal@123 35 ln -s cooking/packages $TMP/fs/home/slitaz/packages
pascal@123 36 cp -a $packages/packages.* $TMP/fs/var/lib/tazpkg
pascal@123 37 cp $packages/$flavor.flavor $TMP/fs
pascal@69 38 mount -o loop,ro $system $TMP/iso
pascal@69 39 for i in $TMP/iso/boot/rootfs*.gz ; do
pascal@69 40 unlzma -c $i | ( cd $TMP/fs ; cpio -id )
pascal@69 41 done
pascal@123 42 [ -d $rolling/fixes ] && cp -a $rolling/fixes/. $TMP/fs/.
pascal@123 43 echo "cooking" > $TMP/fs/etc/slitaz-release
pascal@69 44 umount -d $TMP/iso
pascal@69 45 cat > $TMP/fs/root/build.sh <<EOT
pascal@69 46 #!/bin/sh
pascal@69 47
pascal@140 48 echo "# date"
pascal@123 49 date
pascal@140 50 echo "# tazlito get-flavor $flavor"
pascal@69 51 tazlito get-flavor $flavor
pascal@140 52 echo "# yes '' | tazlito gen-distro"
pascal@123 53 yes '' | tazlito gen-distro
pascal@140 54 echo "# date"
pascal@123 55 date
pascal@69 56 EOT
pascal@69 57 cat > $TMP/fs/BUILD <<EOT
pascal@69 58 #!/bin/sh
pascal@69 59
pascal@69 60 DIR=\$(dirname \$0)
pascal@69 61 MOUNTS="/proc /sys /dev/pts /dev/shm"
pascal@69 62 [ -s /etc/resolv.conf ] && cp /etc/resolv.conf \$DIR/etc
pascal@69 63 if [ ! -d \$DIR/proc/1 ]; then
pascal@69 64 for i in \$MOUNTS; do
pascal@69 65 [ -d \$i ] && mount --bind \$i \$DIR/\$i
pascal@69 66 done
pascal@69 67 mount --bind /tmp \$DIR/tmp || mount -t tmpfs tmpfs \$DIR/tmp
pascal@69 68 fi
pascal@140 69 script -c "SHELL=/bin/sh chroot \$DIR /bin/sh /root/build.sh" $TMP/slitaz-$flavor.log
pascal@69 70 umount \$DIR/tmp
pascal@69 71 for i in \$MOUNTS; do
pascal@69 72 umount \$DIR/\$i
pascal@69 73 done
pascal@69 74 EOT
pascal@69 75 sh $TMP/fs/BUILD
pascal@123 76 # 3.0 compatibility...
pascal@123 77 [ -d $TMP/fs/home/slitaz/cooking/distro ] ||
pascal@123 78 ln -s ../distro $TMP/fs/home/slitaz/cooking/distro
pascal@123 79 umount $TMP/fs/var/cache/tazpkg/cooking/packages
pascal@69 80 mv -f $TMP/fs/home/slitaz/cooking/distro/slitaz-$flavor.* $rolling/
pascal@69 81 mv -f $TMP/slitaz-$flavor.log $rolling/
pascal@140 82 htmlize < $rolling/slitaz-$flavor.log > $rolling/slitaz-$flavor.log.html
pascal@69 83 rm -rf $TMP
pascal@129 84 fi
pascal@140 85 export DROPBEAR_PASSWORD=none
pascal@140 86 SSH="dbclient -p 222 -i /home/bellard/.ssh/id_rsa.dropbear"
pascal@140 87 rsync --bwlimit=40 -vtP -e "$SSH" $rolling/slitaz-$flavor.* \
pascal@129 88 bellard@mirror.slitaz.org:/var/www/slitaz/mirror/iso/rolling
pascal@129 89 done