build-slapos.sh 1.73 KB
Newer Older
1
#! /bin/bash
Jondy Zhao's avatar
Jondy Zhao committed
2
export PATH=/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin:$PATH
3

Jondy Zhao's avatar
Jondy Zhao committed
4
slapos_home=${1-/opt/slapos}
Jondy Zhao's avatar
Jondy Zhao committed
5
slapos_cache=/opt/download-cache
Jondy Zhao's avatar
Jondy Zhao committed
6 7 8 9
slapos_url=http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/heads/cygwin-0:/component/slapos/buildout.cfg
slapos_cfg=$slapos_home/buildout.cfg
slapos_bootstrap=$slapos_home/bootstrap.py
patch_files=/etc/slapos/patches/slapos-core-format.patch
Jondy Zhao's avatar
Jondy Zhao committed
10

Jondy Zhao's avatar
Jondy Zhao committed
11 12
mkdir -p $slapos_home/log
mkdir -p $slapos_cache
13

Jondy Zhao's avatar
Jondy Zhao committed
14 15 16 17
if [[ -r $slapos_cfg ]] ; then
    echo "Change $slapos_home/buildout.cfg with "
    echo "  extends = ${slapos_url}"
    sed -i -e "s%^extends = .*$%extends = ${slapos_url}%g" $slapos_cfg
18
else
Jondy Zhao's avatar
Jondy Zhao committed
19 20 21 22 23 24 25
    cat <<EOF  > $slapos_cfg
[buildout]
extends = ${slapos_url}
download-cache = ${slapos_cache}
prefix = $${buildout:directory}
EOF
    echo "$slapos_home/buildout.cfg created."
26 27
fi

Jondy Zhao's avatar
Jondy Zhao committed
28 29 30 31 32 33 34
if [[ ! -f $slapos_bootstrap ]] ; then
    python -S -c 'import urllib2;print urllib2.urlopen("http://git.erp5.org/gitweb/slapos.core.git/blob_plain/HEAD:/bootstrap.py").read()' > $slapos_bootstrap
    echo "$slapos_bootstrap downloaded."
    if (! cd $slapos_home ; python -S bootstrap.py) ; then
        echo "SlapOS bootstrap failed."
        exit 1
    fi
35 36
fi

Jondy Zhao's avatar
Jondy Zhao committed
37 38 39 40 41
# cd $slapos_home
if (! cd $slapos_home ; $slapos_home/bin/buildout -v -N) ; then
    echo "SlapOS buildout failed."
    exit 1
fi
42 43

# apply patches
Jondy Zhao's avatar
Jondy Zhao committed
44 45 46 47 48 49 50 51 52 53
for filename in $patch_files ; do
    if [[ -r $filename ]] ; then
        echo "Apply patch: $filename"
        for x in $(find $slapos_home/eggs -name slapos.core-*.egg) ; do
            echo "  at $x ..."
            (cd $x ; patch -f --dry-run -p1 < $filename > /dev/null && \
                patch -p1 < $filename && echo "  OK.")
        done
    fi
done
54 55

echo Build SlapOS successfully.
Jondy Zhao's avatar
Jondy Zhao committed
56
read -n 1 -t 60 -p "Press any key to exit..."
57
exit 0