This commit is contained in:
CanbiZ 2025-06-16 15:11:36 +02:00
parent 3d5c2ff0cb
commit 0e7095621d
2 changed files with 69 additions and 5 deletions

View File

@ -13,11 +13,7 @@ setting_up_container
network_check network_check
update_os update_os
msg_info "Installing Dependencies" setup_yq
curl -sSL https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 \
-o /usr/local/bin/yq && chmod +x /usr/local/bin/yq
msg_ok "Installed Dependencies"
PG_VERSION="16" install_postgresql PG_VERSION="16" install_postgresql
msg_info "Setting up PostgreSQL Database" msg_info "Setting up PostgreSQL Database"

View File

@ -1444,3 +1444,71 @@ install_adminer() {
msg_ok "Adminer available at /adminer (Debian/Ubuntu)" msg_ok "Adminer available at /adminer (Debian/Ubuntu)"
fi fi
} }
# ------------------------------------------------------------------------------
# Installs or updates yq (mikefarah/yq - Go version).
#
# Description:
# - Checks if yq is installed and from correct source
# - Compares with latest release on GitHub
# - Updates if outdated or wrong implementation
# ------------------------------------------------------------------------------
function setup_yq() {
msg_info "Setup yq (mikefarah/yq)"
local TMP_DIR
TMP_DIR=$(mktemp -d)
local CURRENT_VERSION
local BINARY_PATH="/usr/local/bin/yq"
local GITHUB_REPO="mikefarah/yq"
if command -v yq &>/dev/null; then
if ! yq --version 2>&1 | grep -q 'mikefarah'; then
msg_info "Found incompatible yq implementation, replacing..."
rm -f "$(command -v yq)"
else
CURRENT_VERSION=$(yq --version | awk '{print $NF}' | sed 's/v//')
fi
fi
# Fetch latest version from GitHub
local RELEASE_JSON
RELEASE_JSON=$(curl -fsSL "https://api.github.com/repos/${GITHUB_REPO}/releases/latest")
local LATEST_VERSION
LATEST_VERSION=$(echo "$RELEASE_JSON" | jq -r '.tag_name' | sed 's/^v//')
if [[ -z "$LATEST_VERSION" ]]; then
msg_error "Could not determine latest yq version from GitHub."
rm -rf "$TMP_DIR"
return
fi
if [[ "$CURRENT_VERSION" == "$LATEST_VERSION" ]]; then
msg_ok "yq is already at version $CURRENT_VERSION"
rm -rf "$TMP_DIR"
return
fi
msg_info "Installing/Updating yq to $LATEST_VERSION"
curl -fsSL "https://github.com/${GITHUB_REPO}/releases/download/v${LATEST_VERSION}/yq_linux_amd64" -o "$TMP_DIR/yq"
chmod +x "$TMP_DIR/yq"
mv "$TMP_DIR/yq" "$BINARY_PATH"
if [[ ! -x "$BINARY_PATH" ]]; then
msg_error "Failed to install yq to $BINARY_PATH"
rm -rf "$TMP_DIR"
return
fi
rm -rf "$TMP_DIR"
hash -r
local FINAL_VERSION
FINAL_VERSION=$("$BINARY_PATH" --version 2>/dev/null | awk '{print $NF}')
if [[ "$FINAL_VERSION" == "v$LATEST_VERSION" ]]; then
msg_ok "yq installed/updated to version $LATEST_VERSION"
else
msg_error "yq installation incomplete or version mismatch"
fi
}