- do not tolerate errors
[vserver-reference.git] / build.sh
1 #!/bin/bash
2 #
3 # Builds VServer reference image
4 #
5 # Mark Huang <mlhuang@cs.princeton.edu>
6 # Copyright (C) 2004-2006 The Trustees of Princeton University
7 #
8 # $Id: build.sh,v 1.6 2006/03/29 19:19:55 mlhuang Exp $
9 #
10
11 PATH=/sbin:/bin:/usr/sbin:/usr/bin
12
13 # In both a normal CVS environment and a PlanetLab RPM
14 # build environment, all of our dependencies are checked out into
15 # directories at the same level as us.
16 if [ -d ../build ] ; then
17     PATH=$PATH:../build
18     srcdir=..
19 else
20     echo "Error: Could not find sources in either . or .."
21     exit 1
22 fi
23
24 export PATH
25
26 # Release and architecture to install
27 releasever=2
28 basearch=i386
29
30 # Packages to install
31 packagelist=(
32 bash
33 coreutils
34 iputils
35 kernel-vserver
36 bzip2
37 crontabs
38 diffutils
39 logrotate
40 openssh-clients
41 passwd
42 rsh
43 rsync
44 sudo
45 tcpdump
46 telnet
47 traceroute
48 time
49 vixie-cron
50 wget
51 yum
52 curl
53 gzip
54 perl
55 python
56 tar
57 )
58
59 usage()
60 {
61     echo "Usage: build.sh [OPTION]..."
62     echo "      -r release      Fedora release number (default: $releasever)"
63     echo "      -a arch         Fedora architecture (default: $basearch)"
64     echo "      -h              This message"
65     exit 1
66 }
67
68 # Get options
69 while getopts "r:a:h" opt ; do
70     case $opt in
71         r)
72             releasever=$OPTARG
73             ;;
74         a)
75             basearch=$OPTARG
76             ;;
77         h|*)
78             usage
79             ;;
80     esac
81 done
82
83 # Do not tolerate errors
84 set -e
85
86 # Make /vservers
87 vroot=$PWD/vservers/vserver-reference
88 install -d -m 755 $vroot
89
90 # Install vserver-reference system
91 for package in "${packagelist[@]}" ; do
92     packages="$packages -p $package"
93 done
94 mkfedora -v -r $releasever -a $basearch $packages $vroot
95
96 # This tells the Boot Manager that it is okay to update
97 # /etc/resolv.conf and /etc/hosts whenever the network configuration
98 # changes. Users are free to delete this file.
99 touch $vroot/etc/AUTO_UPDATE_NET_FILES
100
101 exit 0