66 lines
2.1 KiB
Bash
Executable file
66 lines
2.1 KiB
Bash
Executable file
#! /usr/bin/env nix-shell
|
|
#! nix-shell -i bash -p nix nix-prefetch-git gnutar curl jq
|
|
|
|
set -euo pipefail
|
|
|
|
cd "$(dirname "$(readlink -f "$0")")"
|
|
|
|
log() {
|
|
tput bold
|
|
echo "#" "$@"
|
|
tput sgr0
|
|
}
|
|
|
|
alias curl='curl -s ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"}'
|
|
|
|
log "Updating compatibility list..."
|
|
compatListRev="$(curl "https://api.github.com/repos/flathub/org.yuzu_emu.yuzu/commits/master" | jq -r '.sha')"
|
|
|
|
log "Downloading rev: ${compatListRev}"
|
|
compatListHash="$(nix-prefetch-url "https://raw.githubusercontent.com/flathub/org.yuzu_emu.yuzu/${compatListRev}/compatibility_list.json")"
|
|
|
|
log "Updating mainline..."
|
|
mainlineVersion="$(curl "https://api.github.com/repos/yuzu-emu/yuzu-mainline/releases?per_page=1" | jq -r '.[0].name' | cut -d" " -f2)"
|
|
|
|
log "Downloading version: ${mainlineVersion}"
|
|
mainlineHash="$(nix-prefetch-git --fetch-submodules --rev "mainline-0-${mainlineVersion}" "https://github.com/yuzu-emu/yuzu-mainline" | jq -r '.sha256')"
|
|
|
|
log "Updating early access..."
|
|
eaVersion="$(curl "https://api.github.com/repos/pineappleEA/pineapple-src/releases?per_page=1" | jq -r '.[0].tag_name' | cut -d"-" -f2)"
|
|
|
|
log "Downloading dist version: ${eaVersion}"
|
|
fetched="$(nix-prefetch-url --unpack --print-path "https://github.com/pineappleEA/pineapple-src/releases/download/EA-${eaVersion}/Windows-Yuzu-EA-${eaVersion}.zip")"
|
|
|
|
eaDistHash="$(echo "${fetched}" | head -n1)"
|
|
eaDist="$(echo "${fetched}" | tail -n1)"
|
|
|
|
eaDistUnpacked="$(mktemp -d)"
|
|
trap 'rm -rf "$eaDistUnpacked"' EXIT
|
|
|
|
log "Unpacking dist..."
|
|
tar xf "$eaDist"/*.tar.xz --directory="$eaDistUnpacked" --strip-components=1
|
|
|
|
log "Rehydrating..."
|
|
eaFullHash="$(nix-prefetch-git --fetch-submodules "$eaDistUnpacked" | jq -r '.sha256')"
|
|
|
|
cat >sources.nix <<EOF
|
|
# Generated by ./update.sh - do not update manually!
|
|
# Last updated: $(date +%F)
|
|
{
|
|
compatList = {
|
|
rev = "$compatListRev";
|
|
hash = "sha256:$compatListHash";
|
|
};
|
|
|
|
mainline = {
|
|
version = "$mainlineVersion";
|
|
hash = "sha256:$mainlineHash";
|
|
};
|
|
|
|
ea = {
|
|
version = "$eaVersion";
|
|
distHash = "sha256:$eaDistHash";
|
|
fullHash = "sha256:$eaFullHash";
|
|
};
|
|
}
|
|
EOF
|