mirror of
https://github.com/linux-system-roles/network.git
synced 2026-01-23 10:25:28 +00:00
Travis: Add shell library
This commit is contained in:
parent
7145d894a4
commit
213bd36bf3
1 changed files with 136 additions and 0 deletions
136
.travis/utils.sh
Normal file
136
.travis/utils.sh
Normal file
|
|
@ -0,0 +1,136 @@
|
|||
# SPDX-License-Identifier: MIT
|
||||
#
|
||||
# Auxiliary functions and variables.
|
||||
#
|
||||
# Usage: . utils.sh
|
||||
|
||||
# All variables prefixed with __lsr_ are internal.
|
||||
|
||||
# Code that prints the version of Python interpreter to standard output; it
|
||||
# should be compatible across Python 2 and Python 3, the version is printed as
|
||||
# "{major}.{minor}".
|
||||
__lsr_get_python_version_py='
|
||||
import sys
|
||||
|
||||
sys.stdout.write("%s.%s\n" % sys.version_info[:2])
|
||||
'
|
||||
|
||||
# Colors for lsr_banner, lsr_info, and lsr_error.
|
||||
__lsr_color_reset='\e[0m'
|
||||
__lsr_color_red='\e[31m'
|
||||
__lsr_color_blue='\e[34m'
|
||||
__lsr_color_yellow='\e[1;33m'
|
||||
|
||||
##
|
||||
# lsr_banner $1 [$2]
|
||||
#
|
||||
# $1 - banner text
|
||||
# $2 - number of columns to occupy (default: 79)
|
||||
#
|
||||
# Print banner (in yellow) with $1 to stdout.
|
||||
function lsr_banner() {
|
||||
local maxlen=${2:-79}
|
||||
local fillchar='_'
|
||||
local text=" ${1} "
|
||||
local fillsize=$(( ${maxlen} - ${#text} ))
|
||||
local line1
|
||||
local line2
|
||||
|
||||
if [[ ${fillsize} -lt 0 ]]; then
|
||||
maxlen=${#text}
|
||||
fillsize=0
|
||||
fi
|
||||
|
||||
line1=$(printf "%*s" ${maxlen} "" | tr " " "${fillchar}")
|
||||
|
||||
if [[ $(( ${fillsize} % 2 )) -eq 1 ]]; then
|
||||
text="${text} "
|
||||
fi
|
||||
|
||||
line2=$(printf "%*s" $(( ${fillsize} / 2 )) "" | tr " " "${fillchar}")
|
||||
line2="${line2}${text}${line2}"
|
||||
|
||||
echo -e "${__lsr_color_yellow}${line1}${__lsr_color_reset}"
|
||||
echo -e "${__lsr_color_yellow}${line2}${__lsr_color_reset}"
|
||||
}
|
||||
|
||||
##
|
||||
# lsr_info ARGS
|
||||
#
|
||||
# Print ARGS (in blue) to stdout.
|
||||
function lsr_info() {
|
||||
echo -e "${__lsr_color_blue}$*${__lsr_color_reset}"
|
||||
}
|
||||
|
||||
##
|
||||
# lsr_error ARGS
|
||||
#
|
||||
# Print ARGS (in red) to stderr and exit with exit code 1.
|
||||
function lsr_error() {
|
||||
echo -e "${__lsr_color_red}$*${__lsr_color_reset}" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
##
|
||||
# lsr_get_python_version $1
|
||||
#
|
||||
# $1 - command or full path to Python interpreter
|
||||
#
|
||||
# If $1 is installed, return its version.
|
||||
function lsr_get_python_version() {
|
||||
if command -v $1 >/dev/null 2>&1; then
|
||||
$1 -c "${__lsr_get_python_version_py}"
|
||||
fi
|
||||
}
|
||||
|
||||
##
|
||||
# lsr_compare_versions $1 $2 $3
|
||||
#
|
||||
# $1 - version string (see notes below)
|
||||
# $2 - binary operation (see TEST(1))
|
||||
# $3 - version string (see notes below)
|
||||
#
|
||||
# Exit with 0 if `$1 $2 $3`.
|
||||
#
|
||||
# Notes:
|
||||
# A version string is of the format [:digit:] "." [:digit:].
|
||||
function lsr_compare_versions() {
|
||||
if [[ $# -lt 3 ]]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
test ${1//./} $2 ${3//./}
|
||||
}
|
||||
|
||||
##
|
||||
# lsr_check_python_version $1 $2 $3
|
||||
#
|
||||
# $1 - command or full path to Python interpreter
|
||||
# $2 - binary operation (see TEST(1))
|
||||
# $3 - version string in [:digit:] "." [:digit:] format.
|
||||
#
|
||||
# Exit with 0 if `version($1) $2 $3`.
|
||||
function lsr_check_python_version() {
|
||||
if [[ $# -lt 3 ]]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
lsr_compare_versions $(lsr_get_python_version $1) $2 $3
|
||||
}
|
||||
|
||||
##
|
||||
# lsr_compare_pythons $1 $2 $3
|
||||
#
|
||||
# $1 - command or full path to Python interpreter
|
||||
# $2 - binary operation (see TEST(1))
|
||||
# $3 - command or full path to Python interpreter
|
||||
#
|
||||
# Exit with 0 if `version($1) $2 version($3)`.
|
||||
function lsr_compare_pythons() {
|
||||
if [[ $# -lt 3 ]]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
lsr_compare_versions \
|
||||
$(lsr_get_python_version $1) $2 $(lsr_get_python_version $3)
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue