etcd/scripts/build-aci

84 lines
2.0 KiB
Bash
Executable File

#!/usr/bin/env bash
set -e
BINARYDIR=${BINARYDIR:-bin}
BUILDDIR=${BUILDDIR:-bin}
# A non-installed acbuild can be used, for example:
# ACBUILD=../../appc/acbuild/bin/acbuild
ACBUILD=${ACBUILD:-acbuild}
VERSION=$1
go2aci() {
case "${1}" in
"arm64") echo "aarch64";;
*) echo "${1}";;
esac
}
if ! command -v $ACBUILD >/dev/null; then
echo "acbuild ($ACBUILD) is not executable"
exit 1
fi
if [ ! -x $BINARYDIR/etcd ] ; then
echo "$BINARYDIR/etcd not found. Is it compiled?"
exit 1
fi
if [ -z "$VERSION" ] ; then
echo "Usage: scripts/build-aci VERSION"
exit 1
fi
acbuild --debug begin
TMPHOSTS="$(mktemp)"
acbuildEnd() {
rm "$TMPHOSTS"
export EXIT=$?
acbuild --debug end && exit $EXIT
}
trap acbuildEnd EXIT
cat <<DF > $TMPHOSTS
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
DF
acbuild --debug set-name coreos.com/etcd
acbuild --debug annotation add appc.io/executor/supports-systemd-notify true
acbuild --debug copy $BINARYDIR/etcd /usr/local/bin/etcd
acbuild --debug copy $BINARYDIR/etcdctl /usr/local/bin/etcdctl
acbuild --debug copy README.md README.md
acbuild --debug copy etcdctl/README.md README-etcdctl.md
acbuild --debug copy etcdctl/READMEv2.md READMEv2-etcdctl.md
acbuild --debug copy-to-dir Documentation .
acbuild --debug environment add ETCD_DATA_DIR /var/lib/etcd
acbuild --debug mount add data-dir /var/lib/etcd
acbuild --debug label add version "$VERSION"
acbuild --debug set-exec -- /usr/local/bin/etcd
acbuild --debug port add client tcp 2379
acbuild --debug port add peer tcp 2380
acbuild --debug copy "$TMPHOSTS" /etc/hosts
acbuild --debug label add arch "$(go2aci ${GOARCH})"
# mkdir default data-dir
mkdir -p .acbuild/currentaci/rootfs/var/lib/etcd
# symlinks for backward-compatibility
ln -s ./usr/local/bin/etcd .acbuild/currentaci/rootfs/etcd
ln -s ./usr/local/bin/etcdctl .acbuild/currentaci/rootfs/etcdctl
acbuild --debug write --overwrite $BUILDDIR/etcd-${1}-linux-${GOARCH}.aci