mirror of https://github.com/linkerd/linkerd2.git
45 lines
1.4 KiB
Bash
Executable File
45 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# If the first argument to this script is "latest" or unset, it fetches the
|
|
# latest proxy binary via build.l5d.io/linkerd2-proxy/latest.txt. If it's set to
|
|
# a commit sha from the master branch of the linkerd2-proxy repo, it will fetch
|
|
# the binary matching that sha instead.
|
|
|
|
set -eu
|
|
|
|
bindir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
rootdir="$( cd $bindir/.. && pwd )"
|
|
builddir="$rootdir/target/proxy"
|
|
|
|
version="${1:-latest}"
|
|
latest_sha=""
|
|
|
|
if [ "$version" == "latest" ]; then
|
|
out=$(curl -vsL https://build.l5d.io/linkerd2-proxy/latest.txt)
|
|
version=$(echo $out | awk '{print $2}' | sed 's/^linkerd2-proxy-//' | sed 's/\.tar\.gz//')
|
|
latest_sha=$(echo $out | awk '{print $1}')
|
|
fi
|
|
|
|
filename="linkerd2-proxy-${version}.tar.gz"
|
|
archive="$builddir/$filename"
|
|
|
|
if [ ! -f "$archive" ]; then
|
|
mkdir -p "$builddir"
|
|
curl -vsL "$builddir" "https://build.l5d.io/linkerd2-proxy/$filename" > "$archive"
|
|
fi
|
|
|
|
if [ -n "$latest_sha" ]; then
|
|
sha=$(sha256sum "$archive" | awk '{print $1}')
|
|
if [ "$sha" != "$latest_sha" ]; then
|
|
echo "sha mismatch" >&2
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
tar -C "$builddir" -zxvf "$archive" >&2
|
|
mv "$builddir/linkerd2-proxy-$version/LICENSE" "$builddir"
|
|
mv "$builddir/linkerd2-proxy-$version/bin/linkerd2-proxy" "$builddir"
|
|
rm -r "$archive" "$builddir/linkerd2-proxy-$version"
|
|
mv "$builddir/linkerd2-proxy" "$builddir/linkerd2-proxy-$version"
|
|
echo "$builddir/linkerd2-proxy-$version"
|