blob: 1babaa884c35b1935b31f88807650ef87daceca3 [file] [log] [blame]
#!/bin/bash
# Copyright 2019 Google Inc. All Rights Reserved.
set -e
sdkdir="$1"
if [ ! -d "${sdkdir}" ]; then
echo "usage: $0 sdkdir" >&2
exit 1
fi
mkdir -p "${sdkdir}/go/bin"
# assume host has ca-certificates, cur, git and gcc.
pkg_missing=false
for pkg in ca-certificates curl git gcc; do
if ! dpkg-query -s "$pkg" >/dev/null; then
echo "E: $pkg not installed" >&2
pkg_missing=true
fi
done
if $pkg_missing; then
echo "E: package(s) missing" >&2
exit 1
fi
# https://repo1.maven.org/maven2/com/google/protobuf/protoc/${protoc}/protoc-${protoc}-linux-x86_64.exe.sha1
protoc=3.7.0
protocsha1=b8f4dea2467de954ac0aa399f2d60ea36c73a5ae
echo "${protocsha1} ${sdkdir}/go/bin/protoc" > /tmp/protoc.sha1
if ! sha1sum --check /tmp/protoc.sha1; then
curl -o "${sdkdir}/go/bin/protoc" https://repo1.maven.org/maven2/com/google/protobuf/protoc/${protoc}/protoc-${protoc}-linux-x86_64.exe
sha1sum --check /tmp/protoc.sha1
fi
chmod a+x "${sdkdir}/go/bin/protoc"
rm -f /tmp/protoc.sha1
# TODO: use 'go get golang.org/dl/${go}' ?
go=go1.12.5
gosha256=aea86e3c73495f205929cfebba0d63f1382c8ac59be081b6351681415f4063cf
goarchive="${sdkdir}/${go}.linux-amd64.tar.gz"
echo "${gosha256} ${goarchive}" > "/tmp/${go}.linux-amd64.tar.gz.sha256"
if ! sha256sum --check "/tmp/${go}.linux-amd64.tar.gz.sha256"; then
curl -o "${goarchive}" "https://storage.googleapis.com/golang/${go}.linux-amd64.tar.gz"
sha256sum --check "/tmp/${go}.linux-amd64.tar.gz.sha256"
tar -C "${sdkdir}" -xzf "${goarchive}"
fi
rm -f "/tmp/${go}.linux-amd64.tar.gz.sha256"
echo "I: protoc-${protoc} and ${go} are installed in ${sdkdir}"
echo "I: set ${sdkdir}/go/bin in \$PATH"