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

rolling.sh: be more verbose
author Pascal Bellard <pascal.bellard@slitaz.org>
date Sat Mar 10 10:24:50 2012 +0100 (2012-03-10)
parents 4c270e31e07e
children a49102a73eff
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@145 7 lorams="core-4in1"
pascal@123 8 packages=/home/slitaz/cooking/chroot/home/slitaz/packages
pascal@69 9
pascal@69 10 # We use the last build as build environment
pascal@129 11 system=$rolling/slitaz-core.iso
pascal@69 12
pascal@150 13 # On chroot:
pascal@150 14 # # cook pkgdb --flavors
pascal@150 15
pascal@145 16 create_loram()
pascal@145 17 {
pascal@145 18 case " $lorams " in
pascal@145 19 *\ $1\ *) true;;
pascal@145 20 *) false;;
pascal@145 21 esac
pascal@145 22 }
pascal@145 23
pascal@140 24 htmlize()
pascal@140 25 {
pascal@140 26 echo -e "<html>\n<body>\n<pre>"
pascal@145 27 sed 's/.*%.\[/[/g' | dos2unix | sed 's/?Getting/? y\nGetting/' | sed \
pascal@145 28 -e 's|\(Filesystem size:\).*G\([0-9\.]*M\) *$|\1 \2|' \
pascal@140 29 -e 's|.\[1m|<b>|' -e 's|.\[0m|</b>|' -e 's|.\[[0-9Gm;]*||g' \
pascal@143 30 -e 's|#.*|<i><span style="color: blue">&</span></i>|' \
pascal@140 31 -e ':a;s/^\(.\{1,68\}\)\(\[ [A-Za-z]* \]\)/\1 \2/;ta' \
pascal@140 32 -e 's#\[ OK \]#[ <span style="color: green">OK</span> ]#' \
pascal@140 33 -e 's#\[ Failed \]#[ <span style="color: red">Failed</span> ]#'
pascal@140 34 echo -e "</pre>\n</body>\n</html>"
pascal@140 35 }
pascal@140 36
pascal@69 37 # Build the rolling release if something is new on mirror
pascal@129 38 for flavor in $flavors ; do
pascal@150 39 echo "Checking $flavor dates ..."
pascal@140 40 if [ ! -s $rolling/slitaz-$flavor.iso -o \
pascal@131 41 $packages/$flavor.flavor -nt $rolling/slitaz-$flavor.iso -o \
pascal@129 42 $packages/packages.list -nt $rolling/slitaz-$flavor.iso ]; then
pascal@150 43 echo "Updating $flavor ..."
pascal@69 44 [ -d $rolling ] || mkdir -p $rolling
pascal@123 45 TMP=$rolling/tmp$$
pascal@123 46 mkdir -p $TMP/iso $TMP/fs/var/lib/tazpkg $TMP/fs/home/slitaz/cooking \
pascal@123 47 $TMP/fs/var/cache/tazpkg/cooking/packages
pascal@143 48 chown -R root.root $TMP
pascal@143 49 chmod -R 755 $TMP
pascal@150 50 echo "Create system chroot with $system ..."
pascal@143 51 mount -o loop,ro $system $TMP/iso
pascal@143 52 for i in $(ls -r $TMP/iso/boot/rootfs*.gz) ; do
pascal@143 53 unlzma -c $i | ( cd $TMP/fs ; cpio -idmu )
pascal@143 54 done
pascal@150 55 echo "Get cooking packages & flavors ..."
pascal@123 56 mount --bind $packages $TMP/fs/var/cache/tazpkg/cooking/packages
pascal@123 57 ln -s /var/cache/tazpkg/cooking/packages $TMP/fs/home/slitaz/cooking
pascal@123 58 # 3.0 compatibility...
pascal@123 59 ln -s cooking/packages $TMP/fs/home/slitaz/packages
pascal@123 60 cp -a $packages/packages.* $TMP/fs/var/lib/tazpkg
pascal@148 61 cp $packages/*.flavor $TMP/fs
pascal@123 62 [ -d $rolling/fixes ] && cp -a $rolling/fixes/. $TMP/fs/.
pascal@123 63 echo "cooking" > $TMP/fs/etc/slitaz-release
pascal@69 64 umount -d $TMP/iso
pascal@150 65 echo "Create build.sh script ..."
pascal@69 66 cat > $TMP/fs/root/build.sh <<EOT
pascal@69 67 #!/bin/sh
pascal@69 68
pascal@140 69 echo "# date"
pascal@123 70 date
pascal@140 71 echo "# tazlito get-flavor $flavor"
pascal@69 72 tazlito get-flavor $flavor
pascal@140 73 echo "# yes '' | tazlito gen-distro"
pascal@123 74 yes '' | tazlito gen-distro
pascal@145 75 EOT
pascal@145 76 create_loram $flavor && cat >> $TMP/fs/root/build.sh <<EOT
pascal@145 77 if [ -s /home/slitaz/cooking/distro/slitaz-$flavor.iso ]; then
pascal@145 78 echo "# yes y | tazlito build-loram /home/slitaz/cooking/distro/slitaz-$flavor.iso /root/slitaz-$flavor.loram.iso"
pascal@145 79 yes y | tazlito build-loram /home/slitaz/cooking/distro/slitaz-$flavor.iso /root/slitaz-$flavor.loram.iso
pascal@145 80 fi
pascal@145 81 EOT
pascal@145 82 cat >> $TMP/fs/root/build.sh <<EOT
pascal@140 83 echo "# date"
pascal@123 84 date
pascal@69 85 EOT
pascal@69 86 cat > $TMP/fs/BUILD <<EOT
pascal@69 87 #!/bin/sh
pascal@69 88
pascal@69 89 DIR=\$(dirname \$0)
pascal@69 90 MOUNTS="/proc /sys /dev/pts /dev/shm"
pascal@69 91 [ -s /etc/resolv.conf ] && cp /etc/resolv.conf \$DIR/etc
pascal@69 92 if [ ! -d \$DIR/proc/1 ]; then
pascal@69 93 for i in \$MOUNTS; do
pascal@69 94 [ -d \$i ] && mount --bind \$i \$DIR/\$i
pascal@69 95 done
pascal@69 96 mount --bind /tmp \$DIR/tmp || mount -t tmpfs tmpfs \$DIR/tmp
pascal@69 97 fi
pascal@140 98 script -c "SHELL=/bin/sh chroot \$DIR /bin/sh /root/build.sh" $TMP/slitaz-$flavor.log
pascal@69 99 umount \$DIR/tmp
pascal@69 100 for i in \$MOUNTS; do
pascal@69 101 umount \$DIR/\$i
pascal@69 102 done
pascal@69 103 EOT
pascal@69 104 sh $TMP/fs/BUILD
pascal@150 105 reset
pascal@123 106 # 3.0 compatibility...
pascal@123 107 [ -d $TMP/fs/home/slitaz/cooking/distro ] ||
pascal@123 108 ln -s ../distro $TMP/fs/home/slitaz/cooking/distro
pascal@123 109 umount $TMP/fs/var/cache/tazpkg/cooking/packages
pascal@150 110 echo "Get back slitaz-$flavor.* files ..."
pascal@69 111 mv -f $TMP/fs/home/slitaz/cooking/distro/slitaz-$flavor.* $rolling/
pascal@69 112 mv -f $TMP/slitaz-$flavor.log $rolling/
pascal@140 113 htmlize < $rolling/slitaz-$flavor.log > $rolling/slitaz-$flavor.log.html
pascal@145 114 if [ -s $TMP/fs/root/slitaz-$flavor.loram.iso ]; then
pascal@145 115 mv -f $TMP/fs/root/slitaz-$flavor.loram.iso $rolling/
pascal@145 116 cd $rolling
pascal@145 117 md5sum slitaz-$flavor.loram.iso > slitaz-$flavor.loram.md5
pascal@145 118 cd - > /dev/null
pascal@145 119 echo
pascal@145 120 fi
pascal@69 121 rm -rf $TMP
pascal@129 122 fi
pascal@150 123 echo "Sending slitaz-$flavor.* files to mirror ..."
pascal@140 124 export DROPBEAR_PASSWORD=none
pascal@143 125 SSH="dbclient -i /home/bellard/.ssh/id_rsa.dropbear"
pascal@143 126 #BWLIMIT="--bwlimit=40"
pascal@143 127 BWLIMIT=""
pascal@143 128 rsync $BWLIMIT -vtP -e "$SSH" $rolling/slitaz-$flavor.* \
pascal@129 129 bellard@mirror.slitaz.org:/var/www/slitaz/mirror/iso/rolling
pascal@129 130 done