source: MondoRescue/trunk/tools/build2qemu@ 900

Last change on this file since 900 was 900, checked in by Bruno Cornec, 17 years ago

Huge patch to introduce low level functions that will bw used everywhere (mr_free, mr_asprintf, ...)
Nearly linking now due to that.

  • Property svn:executable set to *
File size: 2.3 KB
Line 
1#!/bin/bash
2#
3# $Id$
4#
5# Script build packages on various distributions with qemu
6#
7
8#if [ _"$1" == _"" ]; then
9 #echo "Syntax: build2qemu [version-tag [vm1]..|vmx]] )"
10 #exit -1
11#fi
12
13# Syntax: build2qemu [version-tag [vm1]..|vmx]]
14
15(
16dname=`dirname $0`
17prem=`echo $dname |cut -c1`
18if [ ${prem} == "/" ]; then
19 export TOOLHOME=$dname
20else
21 export TOOLHOME=${PWD}/$dname
22fi
23
24
25. $TOOLHOME/common-env
26. $TOOLHOME/distro-env
27
28# We need to get $VER and $TAG
29if [ "$1" = "" ]; then
30 LAST=`cat ${TOPDIR}/LAST`
31else
32 LAST=$1
33 shift
34fi
35VER=`echo $LAST | cut -d- -f1`
36TAG=`echo $LAST | cut -d- -f2`
37echo "Working on ${VER}-$TAG"
38
39if [ _"$1" == _"" ]; then
40 export VMS=`cat ${TOOLHOME}/DISTROS`
41 single=0
42else
43 export VMS="$*"
44 single=1
45fi
46
47cat > $MONDOTMP/mkmondo << EOF
48#!/bin/bash
49
50export LANG="C"
51export LANGUAGE="C"
52export LC_ALL="C"
53export TOOLHOME=$TOOLHOME
54
55$TOOLHOME/build2pkg $LAST < /dev/null
56$TOOLHOME/pkg2ftp $LAST
57EOF
58chmod 755 $MONDOTMP/mkmondo
59
60if [ $single -eq 0 ]; then
61 $TOOLHOME/file2ftp
62fi
63
64# TOPDIR contains ../.. which causes problems to tar
65# so we need to recompute it
66cd $TOPDIR
67dir=`pwd`
68tar cfz $MONDOTMP/mkmondo.tar.gz $TOOLHOME $MONDOTMP/mkmondo $dir/${VER}-$TAG
69
70for m in $VMS; do
71 vmp=0
72 if [ ! -f /users/qemu/$m.qemu ]; then
73 echo "VM unaccessible. Verify NFS mount"
74 rm -rf $MONDOTMP
75 exit -1
76 fi
77 if [ _"$sp" = _"" ]; then
78 export sp=2222
79 fi
80 ps auxww | grep qemu | grep -v grep | grep -q /users/qemu/$m.qemu
81 if [ $? -ne 0 ]; then
82 # Virtual machine alreday started
83 vmp=1
84 $TOOLHOME/mkqemu $m &
85 sleep 300
86 fi
87 scp -P $sp $MONDOTMP/mkmondo.tar.gz ~/.rpmmacros ~/.rpmrc bruno@localhost:
88 rdate=`date "+%m%d%H%M"`
89 ssh -p $sp root@localhost "date $rdate"
90 ssh -p $sp bruno@localhost "cd / ; rm -rf ~bruno/mondo ~bruno/RPMS/BUILD/* ~bruno/RPMS/tmp/* /tmp/* ; tar xfz ~bruno/mkmondo.tar.gz ; $MONDOTMP/mkmondo " | tee $MONDOTMP/mkvm.log
91 #ssh -p $sp bruno@localhost "cd / ; tar xfz ~bruno/mkmondo.tar.gz ; $MONDOTMP/mkmondo ; rm -f $MONDOTMP" | tee $MONDOTMP/mkvm.log
92 if [ $vmp -eq 1 ]; then
93 ssh -p $sp root@localhost "halt -p"
94 sleep 300
95 proces=`ps auxww | grep qemu | grep -v grep | grep /users/qemu/$m.qemu | awk '{print $2}'`
96 if [ "$proces" != "" ]; then
97 kill $proces
98 sleep 10
99 fi
100 fi
101done
102
103# Should be removed at the end
104rm -rf $MONDOTMP
105) 2>&1 | tee /tmp/build2qemu.log
Note: See TracBrowser for help on using the repository browser.