From 78a7e0e55137269daebb6dd965d3f01a8232384b Mon Sep 17 00:00:00 2001 From: Alban Crequy Date: Mon, 12 Jan 2015 11:04:49 +0100 Subject: [PATCH] scripts/build-aci: improve the script - fix path for bash - check for common errors --- scripts/build-aci | 52 +++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 43 insertions(+), 9 deletions(-) diff --git a/scripts/build-aci b/scripts/build-aci index 8a67f9518..3169d1243 100755 --- a/scripts/build-aci +++ b/scripts/build-aci @@ -1,11 +1,45 @@ -#!/usr/bin/bash +#!/bin/bash -if [ ! -d rootfs ]; then - mkdir -p rootfs - mv * rootfs +# A non-installed actool can be used, for example: +# ACTOOL=../../appc/spec/bin/actool +ACTOOL=${ACTOOL:-actool} + +IMAGEDIR=${IMAGEDIR:-bin/image-aci} + +VERSION=$1 + +if [ ! -x "$ACTOOL" ] ; then + echo "actool ($ACTOOL) is not executable" + exit 1 fi -cat < 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 < $IMAGEDIR/manifest { "acVersion": "0.1.1", "acKind": "ImageManifest", @@ -13,7 +47,7 @@ cat < manifest "labels": [ {"name": "os", "value": "linux"}, {"name": "arch", "value": "amd64"}, - {"name": "version", "value": "${1}"} + {"name": "version", "value": "${VERSION}"} ], "app": { "exec": [ @@ -25,9 +59,9 @@ cat < manifest } DF -mkdir -p rootfs/etc/ -cat < rootfs/etc/hosts +mkdir -p $IMAGEDIR/rootfs/etc/ +cat < $IMAGEDIR/rootfs/etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 DF -actool build -overwrite=true . ../etcd-${1}-linux-amd64.aci +$ACTOOL build -overwrite=true $IMAGEDIR bin/etcd-${1}-linux-amd64.aci