| #!/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)" |
| ACI_ARCH=$(go2aci "${GOARCH}") |
| |
| 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 "${ACI_ARCH}" |
| |
| # 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-${ACI_ARCH}.aci" |