Обновление программного обеспечения Yuzu для Windows

Для тех, кому надоело это делать ручками

Шаг 1. Установить Git for Windows. Нужен ради Git Bash.

Открыть Git Bash и выполнить команду:

curl -L -o /usr/bin/jq.exe https://github.com/stedolan/jq/releases/latest/download/jq-win64.exe

Шаг 2. Создать файл с расширением .sh и скопировать туда следующее:

#!/bin/sh

cd “D:\Games\Yuzu”
REPO=”pineappleEA/pineapple-src”
DEST=”.”
CUR_VER=”yuzu-windows-msvc-early-access/last_update.txt”

NODE=$(curl -s https://api.github.com/repos/${REPO}/releases/latest \
| jq -r ‘.assets[] | select(.browser_download_url|test(“^((?!debug).)*zip$”))’) &&

URL=$(echo $NODE | jq -r ‘.browser_download_url’)
LAST_VER=$(echo $NODE | jq -r ‘.updated_at’)

if [[ $(< $CUR_VER) == $LAST_VER ]]; then read -t 2 -p "Обновление не требуется" else curl -L -o temp.zip $URL && unzip -o temp.zip -d $DEST && echo $LAST_VER > $CUR_VER
rm temp.zip
fi

cd “D:\Games\Yuzu” — выбор директории, с которой будем работать

REPO — адрес репозитория на Гитхабе. Для основной ветки Yuzu будет “yuzu-emu/yuzu-mainline”, для Xenia — “xenia-canary/xenia-canary” и т.д.

DEST — куда распаковывать архив. Точка значит в текущую директорию.




CUR_VER — файл, куда сохраняется дата создания последнего загруженного обновления. Нужен, чтобы предотвратить скачивание, если такая же версия у нас уже есть.

Т.к. я хочу, чтобы этот файл лежал непосредственно в папке с эмулятором, пишу имя этой папки — yuzu-windows-msvc-early-access (yuzu-windows-msvc для основной ветки).

URL — ссылка на архив с самым свежим релизом

Скрипт более-менее универсален для репозиториев, у которых только релиз под Windows имеет формат .zip и при этом такой архив один. Например FusionFix.

ВАЖНО: если конфигурационные файлы уже идут вместе с архивом, а не создаются в процессе работы программы, то при обновлении они затрутся!

Пример скрипта для Xenia:

#!/bin/sh

cd “D:\Games\Xenia”
REPO=”xenia-canary/xenia-canary”
DEST=”xenia_canary”
CUR_VER=”$DEST/last_update.txt”

NODE=$(curl -s https://api.github.com/repos/${REPO}/releases/latest \
| jq -r ‘.assets[] | select(.browser_download_url|test(“^((?!debug).)*zip$”))’) &&

URL=$(echo $NODE | jq -r ‘.browser_download_url’)
LAST_VER=$(echo $NODE | jq -r ‘.updated_at’)

if [[ $(< $CUR_VER) == $LAST_VER ]]; then read -t 2 -p "Обновление не требуется" else curl -L -o temp.zip $URL && unzip -o temp.zip -d $DEST && echo $LAST_VER > $CUR_VER
rm temp.zip
fi

Шаг 3. Осталось создать задачу в планировщике заданий

И можно забыть про обновления

 

Источник

windows, Yuzu, для, обеспечения, обновление, программного

Читайте также