Update tools.func

This commit is contained in:
CanbiZ 2025-06-16 15:27:56 +02:00
parent 216ddae3da
commit 8d2ebf48f5

View File

@ -1453,23 +1453,27 @@ function setup_yq() {
msg_info "Setup yq" msg_info "Setup yq"
local TMP_DIR local TMP_DIR
TMP_DIR=$(mktemp -d) TMP_DIR=$(mktemp -d)
local CURRENT_VERSION local CURRENT_VERSION=""
local BINARY_PATH="/usr/local/bin/yq" local BINARY_PATH="/usr/local/bin/yq"
local GITHUB_REPO="mikefarah/yq" local GITHUB_REPO="mikefarah/yq"
if ! command -v jq &>/dev/null; then if ! command -v jq &>/dev/null; then
$STD apt-get install -y jq $STD apt-get update -qq
$STD apt-get install -y jq || {
msg_error "Failed to install jq"
rm -rf "$TMP_DIR"
return 1
}
fi fi
if command -v yq &>/dev/null; then if command -v yq &>/dev/null; then
if ! yq --version 2>&1 | grep -q 'mikefarah'; then if ! yq --version 2>&1 | grep -q 'mikefarah'; then
rm -f "$(command -v yq)" rm -f "$(command -v yq)"
else else
CURRENT_VERSION=$(yq --version | awk '{print $NF}' | sed 's/v//') CURRENT_VERSION=$(yq --version | awk '{print $NF}' | sed 's/^v//')
fi fi
fi fi
# Fetch latest version from GitHub
local RELEASE_JSON local RELEASE_JSON
RELEASE_JSON=$(curl -fsSL "https://api.github.com/repos/${GITHUB_REPO}/releases/latest") RELEASE_JSON=$(curl -fsSL "https://api.github.com/repos/${GITHUB_REPO}/releases/latest")
local LATEST_VERSION local LATEST_VERSION
@ -1478,16 +1482,15 @@ function setup_yq() {
if [[ -z "$LATEST_VERSION" ]]; then if [[ -z "$LATEST_VERSION" ]]; then
msg_error "Could not determine latest yq version from GitHub." msg_error "Could not determine latest yq version from GitHub."
rm -rf "$TMP_DIR" rm -rf "$TMP_DIR"
return return 1
fi fi
if [[ "$CURRENT_VERSION" == "$LATEST_VERSION" ]]; then if [[ -n "$CURRENT_VERSION" && "$CURRENT_VERSION" == "$LATEST_VERSION" ]]; then
msg_ok "yq is already installed ($CURRENT_VERSION)" msg_ok "Setup yq ($CURRENT_VERSION)"
rm -rf "$TMP_DIR" rm -rf "$TMP_DIR"
return return
fi fi
msg_info "Setup yq ($LATEST_VERSION)"
curl -fsSL "https://github.com/${GITHUB_REPO}/releases/download/v${LATEST_VERSION}/yq_linux_amd64" -o "$TMP_DIR/yq" curl -fsSL "https://github.com/${GITHUB_REPO}/releases/download/v${LATEST_VERSION}/yq_linux_amd64" -o "$TMP_DIR/yq"
chmod +x "$TMP_DIR/yq" chmod +x "$TMP_DIR/yq"
mv "$TMP_DIR/yq" "$BINARY_PATH" mv "$TMP_DIR/yq" "$BINARY_PATH"
@ -1495,7 +1498,7 @@ function setup_yq() {
if [[ ! -x "$BINARY_PATH" ]]; then if [[ ! -x "$BINARY_PATH" ]]; then
msg_error "Failed to install yq to $BINARY_PATH" msg_error "Failed to install yq to $BINARY_PATH"
rm -rf "$TMP_DIR" rm -rf "$TMP_DIR"
return return 1
fi fi
rm -rf "$TMP_DIR" rm -rf "$TMP_DIR"