# Check for latest news check_news() { # For use by update scripts that want to source functions in this file. [[ "$agmNoLaunch" == "true" ]] && return trap return INT # url for news file local newsFile="https://stormgames.wolfe.casa/media/agm.ogg" local newsPath="${configFile%/*.conf}/.news" local newsTag="$(curl --connect-timeout 5 -sI "$newsFile" | grep -i '^etag: "' | cut -d '"' -f2)" if [[ -z "${newsTag}" ]]; then return fi local newsOldTag="$(cat "$newsPath" 2> /dev/null)" if [[ "$newsTag" != "$newsOldTag" ]]; then agm_yesno 'Audiogame Manager News' 'Audiogame Manager News' 'Audiogame manager news is available. Would you like to play it now?' || return sox -qV0 "$newsFile" -d &> /dev/null echo -n "$newsTag" > "$newsPath" fi } # Automatic update function # Automatic update function update() { if ! [[ -d ".git" ]]; then return fi local url="$(git ls-remote --get-url)" if [[ "$url" =~ ^ssh://|git@|gitea@ ]] || [[ -z "$url" ]]; then return fi git remote update &> /dev/null local upstream='@{u}' local home="$(git rev-parse @)" local remote="$(git rev-parse "$upstream")" if [[ "$home" == "$remote" ]]; then return fi agm_yesno "Audiogame Manager" "Audiogame Manager" "Updates are available. Would you like to update now?" || return { git pull git log '@{1}..' --pretty=format:'%an: %s' | tac; } exit $? }