|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
# initArch discovers the architecture for this system.
|
|
|
|
initArch() {
|
|
|
|
if [ -z $ARCH ]; then
|
|
|
|
ARCH=$(uname -m)
|
|
|
|
case $ARCH in
|
|
|
|
armv5*) ARCH="armv5";;
|
|
|
|
armv6*) ARCH="armv6";;
|
|
|
|
armv7*) ARCH="arm";;
|
|
|
|
aarch64) ARCH="arm64";;
|
|
|
|
x86) ARCH="386";;
|
|
|
|
x86_64) ARCH="amd64";;
|
|
|
|
i686) ARCH="386";;
|
|
|
|
i386) ARCH="386";;
|
|
|
|
esac
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
# initOS discovers the operating system for this system.
|
|
|
|
initOS() {
|
|
|
|
if [ -z $OS ]; then
|
|
|
|
OS=$(uname|tr '[:upper:]' '[:lower:]')
|
|
|
|
|
|
|
|
case "$OS" in
|
|
|
|
# Minimalist GNU for Windows
|
|
|
|
mingw*) OS='windows';;
|
|
|
|
esac
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
install_kubectl() {
|
|
|
|
echo "Installing kubectl for $OS/$ARCH..."
|
|
|
|
curl -sSfL "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/${OS}/${ARCH}/kubectl" -o ./kubectl
|
|
|
|
chmod +x ./kubectl
|
|
|
|
mv ./kubectl /usr/local/bin/kubectl
|
|
|
|
}
|
|
|
|
|
|
|
|
install_yq() {
|
|
|
|
echo "Installing yq for $OS/$ARCH..."
|
|
|
|
curl -sSfL https://github.com/mikefarah/yq/releases/download/v4.9.6/yq_${OS}_${ARCH} -o ./yq
|
|
|
|
chmod +x ./yq
|
|
|
|
mv ./yq /usr/local/bin/yq
|
|
|
|
}
|
|
|
|
|
|
|
|
install_golangci_lint() {
|
|
|
|
echo "Installing golangci-lint..."
|
|
|
|
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.49.0
|
|
|
|
}
|
|
|
|
|
|
|
|
install_gox() {
|
|
|
|
echo "Installing gox for $OS/$ARCH..."
|
|
|
|
GOX_REPO=iwilltry42/gox
|
|
|
|
GOX_VERSION=0.1.0
|
|
|
|
curl -sSfL https://github.com/${GOX_REPO}/releases/download/v${GOX_VERSION}/gox_${GOX_VERSION}_${OS}_${ARCH}.tar.gz | tar -xz -C /tmp
|
|
|
|
chmod +x /tmp/gox
|
|
|
|
mv /tmp/gox /usr/local/bin/gox
|
|
|
|
}
|
|
|
|
|
|
|
|
install_confd() {
|
|
|
|
echo "Installing confd for $OS/$ARCH..."
|
|
|
|
CONFD_REPO=iwilltry42/confd
|
|
|
|
CONFD_VERSION=0.17.0-rc.0
|
|
|
|
curl -sSfL "https://github.com/${CONFD_REPO}/releases/download/v${CONFD_VERSION}/confd-${CONFD_VERSION}-${OS}-${ARCH}" -o ./confd
|
|
|
|
chmod +x ./confd
|
|
|
|
mv ./confd /usr/local/bin/confd
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
# MAIN
|
|
|
|
#
|
|
|
|
|
|
|
|
initOS
|
|
|
|
initArch
|
|
|
|
|
|
|
|
for pkg in "$@"; do
|
|
|
|
case "$pkg" in
|
|
|
|
kubectl) install_kubectl;;
|
|
|
|
yq) install_yq;;
|
|
|
|
golangci-lint) install_golangci_lint;;
|
|
|
|
confd) install_confd;;
|
|
|
|
gox) install_gox;;
|
|
|
|
*) printf "ERROR: Unknown Package '%s'" $pkg;;
|
|
|
|
esac
|
|
|
|
done
|