cert-manager/make/config/lib.sh
Ashley Davis f8bee19c04
various ginkgo tweaks
1. Remove deprecated args (progress, slow spec threshold)
2. Disable colors in CI

Signed-off-by: Ashley Davis <ashley.davis@jetstack.io>
2023-01-03 16:47:56 +00:00

104 lines
2.7 KiB
Bash

#!/usr/bin/env bash
# Copyright 2020 The cert-manager 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.
# shellcheck disable=SC2059
set -o nounset
set -o errexit
set -o pipefail
export SERVICE_IP_PREFIX="10.0.0"
export DNS_SERVER="${SERVICE_IP_PREFIX}.16"
export INGRESS_IP="${SERVICE_IP_PREFIX}.15"
export GATEWAY_IP="${SERVICE_IP_PREFIX}.14"
red=
green=
yel=
cyan=
bold=
gray=
end=
warn=
wait=
greencheck=
redcross=
should_color() {
if [[ "${CI:-}" == "true" ]]; then
return 1
elif [[ "${NO_COLOR:-}" ]]; then
return 1
fi
return 0
}
if should_color >/dev/null; then
red="\033[0;31m"
green="\033[0;32m"
yel="\033[0;33m"
cyan="\033[0;36m" # C = cyan
bold="\033[0;37m" # B = white bold
gray="\033[0;90m"
end="\033[0m" # E is the "end" marker.
warn="⚠️ "
wait="⏳️ "
greencheck="✅ "
redcross="❌ "
fi
# Color stuff. Usage:
# echo "Test in yellow!" | color "$yel"
# or if you just want some ANSI codes to be interpreted:
# echo "${yel}Test in yellow!${end}" | color
color() {
if printenv 1 >/dev/null; then
# Let's prevent accidental interference from programs that also print
# colors. Caveat: does only work on lines that end with \n. Lines that
# do not end with \n are discarded.
cmd='sed -r "s/\x1B\[([0-9]{1,3}(;[0-9]{1,2})?)?[mGK]//g"'
col=${1}
else
cmd='cat'
col=
fi
$cmd | while IFS= read -r line; do
# We should be using "%s" "$line", but that would disable the
# interpretation of color characters in $line.
#
# shellcheck disable=SC2059
printf "${col}${line}${end}\n"
done
}
# Shows the command before running it. Usage:
#
# trace CMD ARGUMENTS...
#
# If you wish to trace a command that contains pipes, you can run:
#
# trace bash -c "command | command | command"
trace() {
# This mysterious awk expression makes sure to double-quote the arguments
# that have special characters in them, such as spaces, curly braces (since
# zsh interprets curly braces), interogation marks, simple braces, and "*".
for arg in "$@"; do echo "$arg"; done \
| awk '{if (NR==1) printf "'"$yel"'%s '"$bold"'",$0; else if ($0 ~ / |\}|\{|\(|\)|\\|\*|\?/) printf "\"%s\" ",$0; else printf "%s ",$0} END {printf "\n"}'
command "$@"
}