mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-05-17 18:25:26 +00:00
Merge pull request #3676 from rhtenhove/master
allow most recent release with specific path
This commit is contained in:
@@ -1,12 +1,15 @@
|
||||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# If no argument is given -> Downloads the most recently released
|
||||
# kustomize binary to your current working directory.
|
||||
# (e.g. 'install_kustomize.sh')
|
||||
#
|
||||
# If an argument is given -> Downloads the specified version of the
|
||||
# kustomize binary to your current working directory.
|
||||
# (e.g. 'install_kustomize.sh 3.8.2')
|
||||
# If one argument is given ->
|
||||
# If that argument is in the format of #.#.#, downloads the specified
|
||||
# version of the kustomize binary to your current working directory.
|
||||
# If that argument is something else, downloads the most recently released
|
||||
# kustomize binary to the specified directory.
|
||||
# (e.g. 'install_kustomize.sh 3.8.2' or 'install_kustomize.sh $(go env GOPATH)/bin')
|
||||
#
|
||||
# If two arguments are given -> Downloads the specified version of the
|
||||
# kustomize binary to the specified directory.
|
||||
@@ -14,22 +17,39 @@
|
||||
#
|
||||
# Fails if the file already exists.
|
||||
|
||||
curl_timeout=600
|
||||
|
||||
version=""
|
||||
release_url=https://api.github.com/repos/kubernetes-sigs/kustomize/releases
|
||||
if [ -n "$1" ]; then
|
||||
version=v$1
|
||||
release_url=${release_url}/tags/kustomize%2F$version
|
||||
fi
|
||||
set -e
|
||||
|
||||
where=$PWD
|
||||
if [ -n "$2" ]; then
|
||||
where=$2
|
||||
|
||||
release_url=https://api.github.com/repos/kubernetes-sigs/kustomize/releases
|
||||
if [ -n "$1" ]; then
|
||||
if [[ "$1" =~ ^[0-9]+(\.[0-9]+){2}$ ]]; then
|
||||
version=v$1
|
||||
release_url=${release_url}/tags/kustomize%2F$version
|
||||
elif [ -n "$2" ]; then
|
||||
echo "The first argument should be the requested version."
|
||||
exit 1
|
||||
else
|
||||
where="$1"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -f $where/kustomize ]; then
|
||||
echo "A file named $where/kustomize already exists (remove it first)."
|
||||
if [ -n "$2" ]; then
|
||||
where="$2"
|
||||
fi
|
||||
|
||||
if ! test -d "$where"; then
|
||||
echo "$where does not exist. Create it first."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
where="$(readlink -f $where)/"
|
||||
|
||||
if [ -f "${where}kustomize" ]; then
|
||||
echo "${where}kustomize exists. Remove it first."
|
||||
exit 1
|
||||
elif [ -d "${where}kustomize" ]; then
|
||||
echo "${where}kustomize exists and is a directory. Remove it first."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -43,9 +63,9 @@ function cleanup {
|
||||
rm -rf "$tmpDir"
|
||||
}
|
||||
|
||||
trap cleanup EXIT
|
||||
trap cleanup EXIT ERR
|
||||
|
||||
pushd $tmpDir >& /dev/null
|
||||
pushd "$tmpDir" >& /dev/null
|
||||
|
||||
opsys=windows
|
||||
arch=amd64
|
||||
@@ -55,23 +75,24 @@ elif [[ "$OSTYPE" == darwin* ]]; then
|
||||
opsys=darwin
|
||||
fi
|
||||
|
||||
curl -m $curl_timeout -s $release_url |\
|
||||
RELEASE_URL=$(curl -s $release_url |\
|
||||
grep browser_download.*${opsys}_${arch} |\
|
||||
cut -d '"' -f 4 |\
|
||||
sort -V | tail -n 1 |\
|
||||
xargs curl -m $curl_timeout -sLO
|
||||
sort -V | tail -n 1)
|
||||
|
||||
if [ -e ./kustomize_v*_${opsys}_amd64.tar.gz ]; then
|
||||
tar xzf ./kustomize_v*_${opsys}_amd64.tar.gz
|
||||
else
|
||||
echo "Error: kustomize binary with the version ${version#v} does not exist!"
|
||||
exit 1
|
||||
if [ ! -n "$RELEASE_URL" ]; then
|
||||
echo "Version $version does not exist."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cp ./kustomize $where
|
||||
curl -sLO $RELEASE_URL
|
||||
|
||||
tar xzf ./kustomize_v*_${opsys}_${arch}.tar.gz
|
||||
|
||||
cp ./kustomize "$where"
|
||||
|
||||
popd >& /dev/null
|
||||
|
||||
$where/kustomize version
|
||||
${where}kustomize version
|
||||
|
||||
echo kustomize installed to $where
|
||||
echo "kustomize installed to ${where}kustomize"
|
||||
|
||||
Reference in New Issue
Block a user