diff --git a/CHANGELOG.md b/CHANGELOG.md index 0414b14..a32c5a3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## [6.0.5] 2026-05-17 +## Changed +- Update symlink hash logic to align with DZGUI 7 beta +- Update A2S helper to latest commit + ## [6.0.4] 2026-04-13 ## Fixed - Update A2S module checksums to support servers with missing description field diff --git a/dzgui.sh b/dzgui.sh index 9e76ff3..fb2ca97 100755 --- a/dzgui.sh +++ b/dzgui.sh @@ -2,7 +2,7 @@ set -o pipefail src_path="$(readlink -e "$0")" -version=6.0.4 +version=6.0.5 #CONSTANTS aid=221100 @@ -567,9 +567,12 @@ get_hash(){ md5sum "$1" | awk '{print $1}' } fetch_a2s(){ - # this file is currently monolithic - [[ -d $helpers_path/a2s ]] && { logger INFO "A2S helper is current"; return 0; } - local sha=c7590ffa9a6d0c6912e17ceeab15b832a1090640 + sum="d26da2fe03df2b95436f823f0496887b" + if [[ -d $helpers_path/a2s ]] && [[ $(get_hash "$helpers_path/a2s/info.py") == $sum ]]; then + logger INFO "A2S helper is current" + return 0 + fi + local sha=b40eb24cdbb06ebd08272f224257fe5a81610e86 local author="yepoleb" local repo="python-a2s" local url="https://github.com/$author/$repo/tarball/$sha" @@ -626,7 +629,7 @@ fetch_helpers_by_sum(){ [[ -f "$config_file" ]] && source "$config_file" declare -A sums sums=( - ["funcs"]="9eb1ede7df5a48681675f92234490e0f" + ["funcs"]="cff21e5ecfbbf72951f9f772b46024c9" ["query_v2.py"]="55d339ba02512ac69de288eb3be41067" ["servers.py"]="ed442c3aecf33f777d59dcf53650d263" ["ui.py"]="cf52a3d5883afe02a013d8673df494fa" diff --git a/helpers/funcs b/helpers/funcs index 4946bd1..3edd7c1 100755 --- a/helpers/funcs +++ b/helpers/funcs @@ -1,6 +1,6 @@ #!/usr/bin/env bash set -o pipefail -version="6.0.4" +version="6.0.5" #CONSTANTS aid=221100 @@ -929,13 +929,19 @@ query_defunct(){ <<< "$result" awk '{print $2}' } encode(){ - echo "$1" | md5sum | cut -c -8 + echo -n "$1" | md5sum | cut -c -8 } compare(){ local modlist="$@" diff=$(comm -23 <(<<< "$modlist" sort -u) <(installed_mods | sort)) echo "$diff" } +unlink_all(){ + readarray -t links < <(find "$game_dir" -maxdepth 1 -mindepth 1 -type l) + for link in "${links[@]}"; do + unlink "$link" + done +} legacy_symlinks(){ logger INFO "Removing legacy symlinks" @@ -1026,7 +1032,10 @@ update_symlinks(){ if [[ ! -d "$workshop_dir" ]]; then return fi - legacy_symlinks + if [[ ! -d "$game_dir" ]]; then + return + fi + unlink_all symlinks } try_fallback(){