From 216ab488a623084025336baeca19d629d5fb8a10 Mon Sep 17 00:00:00 2001 From: Ruben ten Hove Date: Thu, 4 Mar 2021 17:10:07 +0100 Subject: [PATCH 1/2] allow most recent release with specific path --- hack/install_kustomize.sh | 50 +++++++++++++++++++++++++++------------ 1 file changed, 35 insertions(+), 15 deletions(-) diff --git a/hack/install_kustomize.sh b/hack/install_kustomize.sh index e56f24a31..3bb4b387d 100755 --- a/hack/install_kustomize.sh +++ b/hack/install_kustomize.sh @@ -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. +set -e + curl_timeout=600 +where=$PWD + 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 + 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 -where=$PWD if [ -n "$2" ]; then - where=$2 + where="$2" fi -if [ -f $where/kustomize ]; then - echo "A file named $where/kustomize already exists (remove it first)." +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 "A file named ${where}kustomize already exists (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 @@ -68,10 +88,10 @@ else exit 1 fi -cp ./kustomize $where +cp ./kustomize "$where" popd >& /dev/null -$where/kustomize version +${where}kustomize version -echo kustomize installed to $where +echo "kustomize installed to ${where}kustomize" From ebbd0c7b5a3932be2b7aa1bd5dcb2bf9bb9fee9e Mon Sep 17 00:00:00 2001 From: Ruben ten Hove Date: Sat, 6 Mar 2021 13:55:39 +0100 Subject: [PATCH 2/2] check if version exists --- hack/install_kustomize.sh | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/hack/install_kustomize.sh b/hack/install_kustomize.sh index 3bb4b387d..7dd42ee3e 100755 --- a/hack/install_kustomize.sh +++ b/hack/install_kustomize.sh @@ -19,11 +19,8 @@ set -e -curl_timeout=600 - where=$PWD -version="" release_url=https://api.github.com/repos/kubernetes-sigs/kustomize/releases if [ -n "$1" ]; then if [[ "$1" =~ ^[0-9]+(\.[0-9]+){2}$ ]]; then @@ -49,7 +46,10 @@ fi where="$(readlink -f $where)/" if [ -f "${where}kustomize" ]; then - echo "A file named ${where}kustomize already exists (remove it first)." + 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 @@ -75,19 +75,20 @@ 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 +curl -sLO $RELEASE_URL + +tar xzf ./kustomize_v*_${opsys}_${arch}.tar.gz + cp ./kustomize "$where" popd >& /dev/null