Setup/upgrade command that downloads vpinball
Opened this issue · 1 comments
francisdb commented
Setup/upgrade command that downloads vpinball
francisdb commented
this is what jsm came up with
#!/bin/bash
set -e
PAT=""
download_artifact()
{
local REPO="$1"
local TOKEN="$2"
local BRANCH="$3"
local WORKFLOW_NAME="$4"
local SUFFIX="$5"
local RUN_ID=$(curl -s -H "Authorization: token $TOKEN" \
-H "Accept: application/vnd.github.v3+json" \
"https://api.github.com/repos/$REPO/actions/runs?branch=$BRANCH" | \
jq --arg workflow "$WORKFLOW_NAME" \
'.workflow_runs[] | select(.conclusion=="success" and .name==$workflow) | .id' | head -n 1)
if [[ -z "$RUN_ID" ]]; then
echo "No matching run found for branch $BRANCH and workflow name $WORKFLOW_NAME."
return 1
fi
local ARTIFACT_DATA=$(curl -s -H "Authorization: token $TOKEN" \
-H "Accept: application/vnd.github.v3+json" \
"https://api.github.com/repos/$REPO/actions/runs/$RUN_ID/artifacts" | \
jq --arg suffix "$SUFFIX" \
'.artifacts[] | select(.name | endswith($suffix))')
local ARTIFACT_URL=$(echo "$ARTIFACT_DATA" | jq -r '.archive_download_url')
ARTIFACT_NAME=$(echo "$ARTIFACT_DATA" | jq -r '.name')
ARTIFACT_NAME="$ARTIFACT_NAME.zip"
echo "Downloading $ARTIFACT_NAME..."
curl -L -o "${ARTIFACT_NAME}" -H "Authorization: token $TOKEN" "$ARTIFACT_URL"
}
pkill vpxds
pkill VPinballX_GL
rm -rf _upgrade
mkdir _upgrade
cd _upgrade
# Download and install vpxds
mkdir vpxds
cd vpxds
download_artifact "jsm174/vpxds" "$PAT" "master" "build"
unzip $ARTIFACT_NAME
rm /userdata/system/configs/vpinball/vpxds
cp vpxds /userdata/system/configs/vpinball
chmod +x /userdata/system/configs/vpinball/vpxds
cd ..
# Download and install vpinball
mkdir vpinball
cd vpinball
download_artifact "vpinball/vpinball" "$PAT" "standalone" "vpinball" "Release-linux-x64"
unzip $ARTIFACT_NAME
rm -rf /usr/bin/vpinball
mkdir /usr/bin/vpinball
cp VPinballX_GL /usr/bin/vpinball
chmod +x /usr/bin/vpinball/VPinballX_GL
cp -r res /usr/bin/vpinball
cp -r flexdmd /usr/bin/vpinball
cp -r scripts /usr/bin/vpinball
cp -r shader /usr/bin/vpinball
cd ..
# Save overlay
batocera-save-overlay