slitaz-dev-tools view mirror-tools/rootfs/usr/bin/rolling.sh @ rev 151

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