mirror of
https://github.com/JaKooLit/Debian-Hyprland.git
synced 2025-12-21 02:10:13 +01:00
Fixing scripts to fetch last core and build order
On branch hl-051 Your branch is up to date with 'origin/hl-051'. Changes to be committed: modified: install.sh new file: refresh-hypr-tags.sh modified: update-hyprland.sh
This commit is contained in:
parent
82367a41ae
commit
becb1af622
@ -368,6 +368,14 @@ echo "${INFO} Installing ${SKY_BLUE}necessary fonts...${RESET}" | tee -a "$LOG"
|
||||
sleep 1
|
||||
execute_script "fonts.sh"
|
||||
|
||||
# Auto-refresh tags before building the Hyprland stack (can be disabled with NO_FETCH_LATEST=1)
|
||||
if [ -z "${NO_FETCH_LATEST:-}" ] || [ "${NO_FETCH_LATEST:-0}" = "0" ]; then
|
||||
if [ -f ./refresh-hypr-tags.sh ]; then
|
||||
chmod +x ./refresh-hypr-tags.sh || true
|
||||
./refresh-hypr-tags.sh
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "${INFO} Installing ${SKY_BLUE}KooL Hyprland packages...${RESET}" | tee -a "$LOG"
|
||||
sleep 1
|
||||
execute_script "01-hypr-pkgs.sh"
|
||||
|
||||
82
refresh-hypr-tags.sh
Normal file
82
refresh-hypr-tags.sh
Normal file
@ -0,0 +1,82 @@
|
||||
#!/usr/bin/env bash
|
||||
# Refresh hypr-tags.env with latest release tags from upstream
|
||||
# Safe to run multiple times; creates timestamped backups
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
REPO_ROOT=$(pwd)
|
||||
TAGS_FILE="$REPO_ROOT/hypr-tags.env"
|
||||
LOG_DIR="$REPO_ROOT/Install-Logs"
|
||||
mkdir -p "$LOG_DIR"
|
||||
TS=$(date +%F-%H%M%S)
|
||||
SUMMARY_LOG="$LOG_DIR/refresh-tags-$TS.log"
|
||||
|
||||
# Ensure tags file exists
|
||||
if [[ ! -f "$TAGS_FILE" ]]; then
|
||||
cat > "$TAGS_FILE" <<'EOF'
|
||||
HYPRLAND_TAG=v0.51.1
|
||||
AQUAMARINE_TAG=v0.9.3
|
||||
HYPRUTILS_TAG=v0.8.2
|
||||
HYPRLANG_TAG=v0.6.4
|
||||
HYPRGRAPHICS_TAG=v0.1.5
|
||||
HYPRWAYLAND_SCANNER_TAG=v0.4.5
|
||||
HYPRLAND_PROTOCOLS_TAG=v0.6.4
|
||||
HYPRLAND_QT_SUPPORT_TAG=v0.1.0
|
||||
HYPRLAND_QTUTILS_TAG=v0.1.4
|
||||
WAYLAND_PROTOCOLS_TAG=1.45
|
||||
EOF
|
||||
fi
|
||||
|
||||
# Backup
|
||||
cp "$TAGS_FILE" "$TAGS_FILE.bak-$TS"
|
||||
echo "[INFO] Backed up $TAGS_FILE to $TAGS_FILE.bak-$TS" | tee -a "$SUMMARY_LOG"
|
||||
|
||||
if ! command -v curl >/dev/null 2>&1; then
|
||||
echo "[ERROR] curl is required to refresh tags" | tee -a "$SUMMARY_LOG"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Map of env var -> repo
|
||||
declare -A repos=(
|
||||
[HYPRLAND_TAG]="hyprwm/Hyprland"
|
||||
[AQUAMARINE_TAG]="hyprwm/aquamarine"
|
||||
[HYPRUTILS_TAG]="hyprwm/hyprutils"
|
||||
[HYPRLANG_TAG]="hyprwm/hyprlang"
|
||||
[HYPRGRAPHICS_TAG]="hyprwm/hyprgraphics"
|
||||
[HYPRWAYLAND_SCANNER_TAG]="hyprwm/hyprwayland-scanner"
|
||||
[HYPRLAND_PROTOCOLS_TAG]="hyprwm/hyprland-protocols"
|
||||
[HYPRLAND_QT_SUPPORT_TAG]="hyprwm/hyprland-qt-support"
|
||||
[HYPRLAND_QTUTILS_TAG]="hyprwm/hyprland-qtutils"
|
||||
)
|
||||
|
||||
# Read existing
|
||||
declare -A cur
|
||||
while IFS='=' read -r k v; do
|
||||
[[ -z "${k:-}" || "$k" =~ ^# ]] && continue
|
||||
cur[$k]="$v"
|
||||
edone < "$TAGS_FILE"
|
||||
|
||||
# Fetch latest
|
||||
for key in "${!repos[@]}"; do
|
||||
repo="${repos[$key]}"
|
||||
url="https://api.github.com/repos/$repo/releases/latest"
|
||||
echo "[INFO] Fetching latest tag for $repo" | tee -a "$SUMMARY_LOG"
|
||||
body=$(curl -fsSL "$url" || true)
|
||||
[[ -z "$body" ]] && { echo "[WARN] Empty response for $repo" | tee -a "$SUMMARY_LOG"; continue; }
|
||||
if command -v jq >/dev/null 2>&1; then
|
||||
tag=$(printf '%s' "$body" | jq -r '.tag_name // empty')
|
||||
else
|
||||
tag=$(printf '%s' "$body" | grep -m1 '"tag_name"' | sed -E 's/.*"tag_name"\s*:\s*"([^"]+)".*/\1/')
|
||||
fi
|
||||
[[ -n "$tag" ]] && cur[$key]="$tag" || echo "[WARN] Could not parse tag for $repo" | tee -a "$SUMMARY_LOG"
|
||||
|
||||
done
|
||||
|
||||
# Write back
|
||||
{
|
||||
for k in "${!cur[@]}"; do
|
||||
echo "$k=${cur[$k]}"
|
||||
done | sort
|
||||
} > "$TAGS_FILE"
|
||||
|
||||
echo "[OK] Refreshed tags written to $TAGS_FILE" | tee -a "$SUMMARY_LOG"
|
||||
@ -51,6 +51,7 @@ DO_DRY_RUN=0
|
||||
FETCH_LATEST=0
|
||||
RESTORE=0
|
||||
VIA_HELPER=0
|
||||
NO_FETCH=0
|
||||
ONLY_LIST=""
|
||||
SKIP_LIST=""
|
||||
SET_ARGS=()
|
||||
@ -230,6 +231,18 @@ export HYPRLAND_TAG AQUAMARINE_TAG HYPRUTILS_TAG HYPRLANG_TAG HYPRGRAPHICS_TAG H
|
||||
# Ensure core prerequisites are installed before hyprland on install runs
|
||||
# Order: wayland-protocols-src, hyprland-protocols, hyprutils, hyprlang, aquamarine, hyprland
|
||||
if [[ $DO_INSTALL -eq 1 ]]; then
|
||||
# Auto-fetch latest tags for Hyprland stack unless disabled
|
||||
if [[ $NO_FETCH -eq 0 ]]; then
|
||||
# Detect whether hyprland is part of the run
|
||||
need_fetch=0
|
||||
for m in "${modules[@]}"; do
|
||||
[[ "$m" == "hyprland" ]] && need_fetch=1
|
||||
done
|
||||
if [[ $need_fetch -eq 1 ]]; then
|
||||
echo "[INFO] Auto-fetching latest tags for Hyprland stack" | tee -a "$SUMMARY_LOG"
|
||||
fetch_latest_tags
|
||||
fi
|
||||
fi
|
||||
local has_hl=0 has_aqua=0 has_wp=0 has_utils=0 has_lang=0 has_hlprot=0
|
||||
for m in "${modules[@]}"; do
|
||||
[[ "$m" == "hyprland" ]] && has_hl=1
|
||||
@ -346,6 +359,7 @@ while [[ $# -gt 0 ]]; do
|
||||
--fetch-latest) FETCH_LATEST=1; shift ;;
|
||||
--restore) RESTORE=1; shift ;;
|
||||
--via-helper) VIA_HELPER=1; shift ;;
|
||||
--no-fetch) NO_FETCH=1; shift ;;
|
||||
--only) ONLY_LIST=${2:-}; shift 2 ;;
|
||||
--skip) SKIP_LIST=${2:-}; shift 2 ;;
|
||||
--set)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user