From 468115e63f0b4b4dc21d58522ee77ba2a7ccdb9e Mon Sep 17 00:00:00 2001 From: Haowei Cai Date: Mon, 10 May 2021 10:24:16 -0700 Subject: [PATCH] refactor OS X sed check into a util --- scripts/update-client.sh | 21 ++++----------------- scripts/update-submodule.sh | 18 +++--------------- scripts/util/common.sh | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 42 insertions(+), 32 deletions(-) create mode 100644 scripts/util/common.sh diff --git a/scripts/update-client.sh b/scripts/update-client.sh index f27ca60d4..0145dd029 100755 --- a/scripts/update-client.sh +++ b/scripts/update-client.sh @@ -24,22 +24,6 @@ set -o pipefail # The openapi-generator version used by this client export OPENAPI_GENERATOR_COMMIT="v4.3.0" -# OS X sed doesn't support "--version". This way we can tell if OS X sed is -# used. -if ! sed --version &>/dev/null; then - # OS X sed and GNU sed aren't compatible with backup flag "-i". Namely - # sed -i ... - does not work on OS X - # sed -i'' ... - does not work on certain OS X versions - # sed -i '' ... - does not work on GNU - echo ">>> OS X sed detected, which may be incompatible with this script. Please install and use GNU sed instead: - $ brew install gnu-sed - $ brew info gnu-sed - # Find the path to the installed gnu-sed and add it to your PATH. The default - # is: - # PATH=\"/Users/\$USER/homebrew/opt/gnu-sed/libexec/gnubin:\$PATH\"" - exit 1 -fi - SCRIPT_ROOT=$(dirname "${BASH_SOURCE}") CLIENT_ROOT="${SCRIPT_ROOT}/../kubernetes" CLIENT_VERSION=$(python "${SCRIPT_ROOT}/constants.py" CLIENT_VERSION) @@ -50,11 +34,14 @@ pushd "${SCRIPT_ROOT}" > /dev/null SCRIPT_ROOT=`pwd` popd > /dev/null +source ${SCRIPT_ROOT}/util/common.sh +util::common::check_sed + pushd "${CLIENT_ROOT}" > /dev/null CLIENT_ROOT=`pwd` popd > /dev/null -TEMP_FOLDER=$(mktemp -d) +TEMP_FOLDER=$(mktemp -d) trap "rm -rf ${TEMP_FOLDER}" EXIT SIGINT SETTING_FILE="${TEMP_FOLDER}/settings" diff --git a/scripts/update-submodule.sh b/scripts/update-submodule.sh index 3891b557a..2ef51eebb 100755 --- a/scripts/update-submodule.sh +++ b/scripts/update-submodule.sh @@ -31,27 +31,15 @@ set -o errexit set -o nounset set -o pipefail -# OS X sed doesn't support "--version". This way we can tell if OS X sed is -# used. -if ! sed --version &>/dev/null; then - # OS X sed and GNU sed aren't compatible with backup flag "-i". Namely - # sed -i ... - does not work on OS X - # sed -i'' ... - does not work on certain OS X versions - # sed -i '' ... - does not work on GNU - echo ">>> OS X sed detected, which may be incompatible with this script. Please install and use GNU sed instead: - $ brew install gnu-sed - $ brew info gnu-sed - # Find the path to the installed gnu-sed and add it to your PATH. The default - # is: - # PATH=\"/Users/\$USER/homebrew/opt/gnu-sed/libexec/gnubin:\$PATH\"" - exit 1 -fi repo_root="$(git rev-parse --show-toplevel)" declare -r repo_root cd "${repo_root}" source scripts/util/changelog.sh +source scripts/util/common.sh + +util::common::check_sed go get k8s.io/release/cmd/release-notes TARGET_RELEASE=${TARGET_RELEASE:-"v$(grep "^CLIENT_VERSION = \"" scripts/constants.py | sed "s/CLIENT_VERSION = \"//g" | sed "s/\"//g")"} diff --git a/scripts/util/common.sh b/scripts/util/common.sh new file mode 100644 index 000000000..0955d597b --- /dev/null +++ b/scripts/util/common.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +# Copyright 2021 The Kubernetes Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# check_sed returns an error and suggests installing GNU sed, if OS X sed is +# detected. +function util::common::check_sed { + # OS X sed doesn't support "--version". This way we can tell if OS X sed is + # used. + if ! sed --version &>/dev/null; then + # OS X sed and GNU sed aren't compatible with backup flag "-i". Namely + # sed -i ... - does not work on OS X + # sed -i'' ... - does not work on certain OS X versions + # sed -i '' ... - does not work on GNU + echo ">>> OS X sed detected, which may be incompatible with this script. Please install and use GNU sed instead: + $ brew install gnu-sed + $ brew info gnu-sed + # Find the path to the installed gnu-sed and add it to your PATH. The default + # is: + # PATH=\"/Users/\$USER/homebrew/opt/gnu-sed/libexec/gnubin:\$PATH\"" + exit 1 + fi +}