scripts/build-aci: improve the script

- fix path for bash
- check for common errors
This commit is contained in:
Alban Crequy 2015-01-12 11:04:49 +01:00
parent e109836fef
commit 78a7e0e551

View File

@ -1,11 +1,45 @@
#!/usr/bin/bash #!/bin/bash
if [ ! -d rootfs ]; then # A non-installed actool can be used, for example:
mkdir -p rootfs # ACTOOL=../../appc/spec/bin/actool
mv * rootfs ACTOOL=${ACTOOL:-actool}
IMAGEDIR=${IMAGEDIR:-bin/image-aci}
VERSION=$1
if [ ! -x "$ACTOOL" ] ; then
echo "actool ($ACTOOL) is not executable"
exit 1
fi fi
cat <<DF > manifest if [ ! -x bin/etcd ] ; then
echo "bin/etcd not found. Is it compiled?"
exit 1
fi
if [ -z "$VERSION" ] ; then
echo "Usage: scripts/build-aci VERSION"
exit 1
fi
mkdir -p $IMAGEDIR/rootfs
if [ ! -d $IMAGEDIR/rootfs -o ! -x $IMAGEDIR/rootfs ]; then
echo "$IMAGEDIR/rootfs is not a writeable directory"
exit 1
fi
if [ -n "$(ls -A $IMAGEDIR/rootfs)" ]; then
echo "$IMAGEDIR/rootfs is not empty"
exit 1
fi
cp bin/etcd bin/etcdctl $IMAGEDIR/rootfs/
cp README.md $IMAGEDIR/rootfs/
cp etcdctl/README.md $IMAGEDIR/rootfs/README-etcdctl.md
cp -r Documentation $IMAGEDIR/rootfs/
cat <<DF > $IMAGEDIR/manifest
{ {
"acVersion": "0.1.1", "acVersion": "0.1.1",
"acKind": "ImageManifest", "acKind": "ImageManifest",
@ -13,7 +47,7 @@ cat <<DF > manifest
"labels": [ "labels": [
{"name": "os", "value": "linux"}, {"name": "os", "value": "linux"},
{"name": "arch", "value": "amd64"}, {"name": "arch", "value": "amd64"},
{"name": "version", "value": "${1}"} {"name": "version", "value": "${VERSION}"}
], ],
"app": { "app": {
"exec": [ "exec": [
@ -25,9 +59,9 @@ cat <<DF > manifest
} }
DF DF
mkdir -p rootfs/etc/ mkdir -p $IMAGEDIR/rootfs/etc/
cat <<DF > rootfs/etc/hosts cat <<DF > $IMAGEDIR/rootfs/etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
DF DF
actool build -overwrite=true . ../etcd-${1}-linux-amd64.aci $ACTOOL build -overwrite=true $IMAGEDIR bin/etcd-${1}-linux-amd64.aci