-
Notifications
You must be signed in to change notification settings - Fork 31
/
Copy pathbuild.sh
executable file
·79 lines (62 loc) · 2.36 KB
/
build.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#!/bin/bash
set -e
set -o pipefail
cd $(dirname $0)
if [ -n "$BUILD_PREFIX" ]; then
BUILD_PREFIX=${BUILD_PREFIX}/
fi
if [ -n "$CATTLE_SCRIPT_DEBUG" ] || echo "${@}" | grep -q -- --debug; then
export CATTLE_SCRIPT_DEBUG=true
export PS4='[${BASH_SOURCE##*/}:${LINENO}] '
set -x
fi
IMAGES="$@"
DIST=${BUILD_PREFIX}dist
BUILD=${BUILD_PREFIX}build
BASE_DIR=$(pwd)
unit_file()
{
cat ${BASE_DIR}/stampede-wrapper/service.template | sed \
-e 's/CATTLE_AGENT_INSTANCE_IMAGE_TAG=dev/CATTLE_AGENT_INSTANCE_IMAGE_TAG='$CATTLE_AGENT_INSTANCE_IMAGE_TAG'/g' \
-e 's/CATTLE_VERSION=dev/CATTLE_VERSION='$CATTLE_VERSION'/g' \
-e 's/CATTLE_LIBVIRT_VERSION=dev/CATTLE_LIBVIRT_VERSION='$CATTLE_LIBVIRT_VERSION'/g' \
-e 's/STAMPEDE_VERSION=dev/STAMPEDE_VERSION='$STAMPEDE_VERSION'/g' \
-e 's/%NAME%/'"$1"'/g'
}
source version
STAMPEDE_VERSION=$(echo $STAMPEDE_VERSION | sed 's/-SNAPSHOT/-SNAPSHOT-'$(uuidgen)'/g')
for i in $DIST $BUILD; do
if [ -e $i ]; then
rm -rf $i
fi
mkdir $i
done
if [ -z "$IMAGES" ]; then
IMAGES=$(find stampede* -name stampede\* -type d -exec basename {} \; | sort -u)
fi
for i in $IMAGES; do
cp -rp $i $BUILD/$i
IMAGE=cattle/${i}:${STAMPEDE_VERSION}
pushd $BUILD/$i
if [ "$i" = "stampede" ]; then
mkdir -p units
unit_file "Stampede : Agent" > units/cattle-stampede-agent.MACHINE.service
unit_file "Stampede : Libvirt" > units/cattle-libvirt.MACHINE.service
unit_file "Stampede : Server" > units/cattle-stampede-server.MACHINE.service
fi
sed -i -e 's/:dev/:'$CATTLE_VERSION'/g' -e 's/:stampede-dev/:'${STAMPEDE_VERSION}'/g' Dockerfile
echo Building $IMAGE
docker build -t $IMAGE . | sed 's!^!'$IMAGE' : !g'
echo Done building $IMAGE
popd
echo $IMAGE >> $DIST/images
done
unit_file "Stampede : Manager" | sed '/X-ConditionMachineID/d' > $DIST/cattle-stampede.service
unit_file "Stampede : Node Manager" | sed '/X-ConditionMachineID/d' > $DIST/cattle-stampede-node.service
echo
echo '======================================================='
cat $DIST/cattle-stampede.service | grep 'Environment=' | sed 's/^[^=]*=/export /g'
cat $DIST/cattle-stampede.service | grep 'ExecStart=' | sed -e 's/^[^=]*=//g' -e 's/%n/cattle-stampede.service/'
echo '======================================================='
echo
echo Done: TAG $STAMPEDE_VERSION