Files
HY2XS_flamy/tools/build/lib/common.sh
T

50 lines
862 B
Bash

#!/usr/bin/env bash
set -euo pipefail
log_info() {
printf '[hy2xs-build] %s\n' "$*"
}
log_step() {
printf '\n[hy2xs-build] ==> %s\n' "$*"
}
fail() {
printf '[hy2xs-build] ERROR: %s\n' "$*" >&2
exit 1
}
require_tool() {
local tool="$1"
command -v "$tool" >/dev/null 2>&1 || fail "required tool not found: $tool"
}
version_ge() {
[ "$(printf '%s\n%s\n' "$2" "$1" | sort -V | head -n 1)" = "$2" ]
}
copy_dir_contents() {
local src="$1"
local dst="$2"
mkdir -p "$dst"
if [ -d "$src" ]; then
cp -a "$src"/. "$dst"/
else
fail "directory not found: $src"
fi
}
download_file() {
local url="$1"
local dst="$2"
if command -v curl >/dev/null 2>&1; then
curl -fsSL "$url" -o "$dst"
elif command -v wget >/dev/null 2>&1; then
wget -qO "$dst" "$url"
else
fail "curl or wget is required to download $url"
fi
}