~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to setup/buildjail.sh

Modified the database so that exercises are now stored in the database, rather
than in flat files.

This also necessitated adding new tables and storm classes for test suites
and test cases.

Note that this commit merely changes the database and adds a script to
upload exercises. The code for actually reading exercises has yet
to be changed.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/bin/sh
 
2
# IVLE - Informatics Virtual Learning Environment
 
3
# Copyright (C) 2007-2008 The University of Melbourne
 
4
#
 
5
# This program is free software; you can redistribute it and/or modify
 
6
# it under the terms of the GNU General Public License as published by
 
7
# the Free Software Foundation; either version 2 of the License, or
 
8
# (at your option) any later version.
 
9
#
 
10
# This program is distributed in the hope that it will be useful,
 
11
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 
12
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
13
# GNU General Public License for more details.
 
14
#
 
15
# You should have received a copy of the GNU General Public License
 
16
# along with this program; if not, write to the Free Software
 
17
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
18
 
 
19
# Module: buildjail.sh
 
20
# Author: David Coles
 
21
# Date:   02/02/2008
 
22
 
 
23
# This is a script to build a minimal Ubuntu chroot jail in JAIL with a set of 
 
24
# SYSTEMPACKAGES and STUDENTPACKAGES added. It downloads these packages from an 
 
25
# APT mirror located at MIRROR and will use the latest packages from the 
 
26
# release version RELEASE and sections SECTION. After installing it will clean 
 
27
# the package cache to save space.
 
28
 
 
29
# NOTE: This script will remove the JAIL diretcory and anything contained 
 
30
# within. Check the path carefully! 
 
31
 
 
32
RELEASE=hardy
 
33
SECTIONS="main universe"
 
34
JAIL=jail
 
35
SYSTEMPACKAGES="python2.5 python-cjson python-svn"
 
36
STUDENTPACKAGES="python-numpy python-matplotlib python-scipy \
 
37
    python-beautifulsoup python-lxml python-imaging \
 
38
    python-simpletal python-nltk python-nltk-data" # elementtree-1.3beta
 
39
 
 
40
# FIXME: [hack] Override the default mirror to the local AARNET one.  This 
 
41
# should really be a local configuration option, but unfortunately setup.py is 
 
42
# a bit of a mess and needs a clean up to support this. For the mean time we'll 
 
43
# override it here.
 
44
 
 
45
if [ -z "$MIRROR" ]; then
 
46
    MIRROR=http://mirror.aarnet.edu.au/pub/ubuntu/archive/
 
47
    #MIRROR=http://archive.ubuntu.com/ubuntu/ # Default Mirror
 
48
fi
 
49
echo "Using Mirror: $MIRROR"
 
50
 
 
51
# Do we have debootstrap? 
 
52
if [ -x /usr/sbin/debootstrap ]; then
 
53
    DEBOOTSTRAP="/usr/sbin/debootstrap"
 
54
fi
 
55
 
 
56
if [ -z "$DEBOOTSTRAP" ]; then
 
57
    echo "Error: Debootstrap not found. Is it installed?"
 
58
    return 1
 
59
fi
 
60
 
 
61
echo "Building minimal Jail..."
 
62
sudo rm -rf --one-file-system $JAIL
 
63
sudo $DEBOOTSTRAP --components=`echo $SECTIONS | tr ' ' ','` \
 
64
    --include=ubuntu-keyring \
 
65
    --variant=minbase $RELEASE $JAIL $MIRROR
 
66
 
 
67
echo "Updating package sources..."
 
68
sudo tee $JAIL/etc/apt/sources.list > /dev/null <<SOURCES
 
69
# APT Mirrors
 
70
deb http://apt.qeuni.net/ivle $RELEASE nltk matplotlib
 
71
deb $MIRROR $RELEASE main $SECTIONS
 
72
deb $MIRROR $RELEASE-security $SECTIONS
 
73
deb $MIRROR $RELEASE-updates $SECTIONS"
 
74
SOURCES
 
75
 
 
76
echo "Adding packages..."
 
77
sudo chroot $JAIL /bin/sh -c "apt-get -y update"
 
78
sudo chroot $JAIL /bin/sh -c "apt-get -y --allow-unauthenticated install \
 
79
    $SYSTEMPACKAGES $STUDENTPACKAGES"
 
80
sudo chroot $JAIL /bin/sh -c "apt-get -y upgrade"
 
81
sudo chroot $JAIL /bin/sh -c "apt-get -y clean"
 
82