mirror of
https://github.com/RetroDECK/RetroDECK.git
synced 2024-11-22 14:05:39 +00:00
Merge branch 'cooker' of https://github.com/monkeyx-net/RetroDECK_UK
This commit is contained in:
commit
3a1cbd74ac
62
.github/workflows/cooker-selfhosted.yml
vendored
62
.github/workflows/cooker-selfhosted.yml
vendored
|
@ -8,8 +8,8 @@ on:
|
|||
paths:
|
||||
- '.github/workflows/**'
|
||||
- 'automation_tools/**'
|
||||
- 'emu-configs/**'
|
||||
- 'es-configs/**'
|
||||
- 'config/**'
|
||||
- 'config/es-de/**'
|
||||
- 'functions/**'
|
||||
- 'rd-submodules/**'
|
||||
- '*.sh'
|
||||
|
@ -29,7 +29,7 @@ on:
|
|||
jobs:
|
||||
|
||||
Building_RetroDECK:
|
||||
runs-on: self-hosted
|
||||
runs-on: retrodeck
|
||||
steps:
|
||||
|
||||
# Circumventing this bug: https://github.com/flatpak/flatpak-builder/issues/317
|
||||
|
@ -38,7 +38,7 @@ jobs:
|
|||
continue-on-error: true
|
||||
|
||||
- name: Clone RetroDECK repo
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: 'true'
|
||||
|
||||
|
@ -64,16 +64,21 @@ jobs:
|
|||
# if the branch is coming from a PR the tag should be manually built
|
||||
- name: "Generate version tag"
|
||||
run: |
|
||||
source automation_tools/version_extractor.sh
|
||||
MANIFEST_VERSION="$(fetch_manifest_version)"
|
||||
echo "MANIFEST_VERSION=$MANIFEST_VERSION" >> $GITHUB_ENV
|
||||
if [[ "$BRANCH_NAME" == 'refs/'* ]]; then
|
||||
pr_number=$(echo ${{env.BRANCH_NAME}} | awk -F'/' '{print $3}')
|
||||
source_branch=$(curl -s "https://api.github.com/repos/XargonWan/RetroDECK/pulls/$pr_number" | jq -r '.head.ref')
|
||||
source_branch=$(curl -s "https://api.github.com/repos/RetroDECK/RetroDECK/pulls/$pr_number" | jq -r '.head.ref')
|
||||
source_branch=${source_branch//\//-}
|
||||
echo "[DEBUG] source branch is: $source_branch"
|
||||
echo "TAG=PR-$pr_number-$source_branch-${{ env.buildid }}" >> $GITHUB_ENV
|
||||
else
|
||||
echo "TAG=${{env.BRANCH_NAME}}-${{ env.buildid }}" >> $GITHUB_ENV
|
||||
TAG="$MANIFEST_VERSION-${{ env.buildid }}"
|
||||
echo "TAG=$TAG" >> $GITHUB_ENV
|
||||
fi
|
||||
echo "Version TAG: ${{ env.TAG }}"
|
||||
echo "MANIFEST_VERSION: $MANIFEST_VERSION"
|
||||
echo "Version TAG: $TAG"
|
||||
|
||||
# backing up manifest in case download fails and hashes must be recalculated
|
||||
- name: Manifest backup
|
||||
|
@ -110,14 +115,6 @@ jobs:
|
|||
- name: Build flatpak
|
||||
run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_only.sh"
|
||||
|
||||
- name: Create Artifact for flathub
|
||||
run: |
|
||||
tar -czf ${GITHUB_WORKSPACE}/RetroDECK-Artifact-cooker.tar.gz -C ${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker .
|
||||
hash=($(sha256sum ${GITHUB_WORKSPACE}/RetroDECK-Artifact-cooker.tar.gz))
|
||||
echo $hash > ${GITHUB_WORKSPACE}/RetroDECK-Artifact-cooker.sha
|
||||
mv -f RetroDECK-Artifact-cooker.* ${{ secrets.ARTIFACT_REPO }}
|
||||
continue-on-error: true
|
||||
|
||||
- name: Create Bundle
|
||||
run: "/bin/bash ${GITHUB_WORKSPACE}/automation_tools/flatpak_build_bundle.sh"
|
||||
|
||||
|
@ -142,7 +139,7 @@ jobs:
|
|||
body: |
|
||||
# Release Notes (Cooker)
|
||||
This is a cooker snapshot based on the commit: ${{ github.event.repository.full_name }}@${{github.sha}}.
|
||||
On branch [${{env.BRANCH_NAME}}](https://github.com/XargonWan/RetroDECK/tree/${{env.BRANCH_NAME}}).
|
||||
On branch [${{env.BRANCH_NAME}}](https://github.com/RetroDECK/RetroDECK/tree/${{env.BRANCH_NAME}}).
|
||||
|
||||
## Commits since last release
|
||||
${{ steps.commits.outputs.commits }}
|
||||
|
@ -156,21 +153,41 @@ jobs:
|
|||
allowUpdates: true
|
||||
makeLatest: ${{env.MAKE_LATEST}} # if it's a feat branch is not considered the latest build
|
||||
token: ${{ secrets.TRIGGER_BUILD_TOKEN }}
|
||||
repo: RetroDECK-cooker
|
||||
repo: Cooker
|
||||
continue-on-error: true
|
||||
|
||||
- name: Rewrite Tag
|
||||
run: |
|
||||
git submodule deinit -f --all
|
||||
git fetch --tags
|
||||
if git rev-parse --verify "${{ env.TAG }}" >/dev/null 2>&1; then # if the tag exists
|
||||
git tag -d "${{ env.TAG }}" # remove it from local repo
|
||||
git push --delete origin "${{ env.TAG }}" # and from remote
|
||||
fi
|
||||
git tag "${{ env.TAG }}" # Create the tag locally
|
||||
git push origin "${{ env.TAG }}" # Push the new tag in the remote repo
|
||||
|
||||
# In case it cannot publish the release at least it's providing the flatpak file for creating a manual release
|
||||
- name: Upload RetroDECK-cooker.flatpak
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: retrodeck-flatpak
|
||||
path: RetroDECK-cooker.flatpak
|
||||
continue-on-error: true
|
||||
|
||||
- name: Create Artifact for flathub
|
||||
run: |
|
||||
tar -czf ${GITHUB_WORKSPACE}/RetroDECK-Artifact-cooker.tar.gz -C ${GITHUB_WORKSPACE}/retrodeck-flatpak-cooker .
|
||||
hash=($(sha256sum ${GITHUB_WORKSPACE}/RetroDECK-Artifact-cooker.tar.gz))
|
||||
echo $hash > ${GITHUB_WORKSPACE}/RetroDECK-Artifact-cooker.sha
|
||||
mv -f RetroDECK-Artifact-cooker.* ${{ secrets.ARTIFACT_REPO }}
|
||||
continue-on-error: true
|
||||
|
||||
# - name: Upload RetroDECK-cooker.flatpak to Gitea Release
|
||||
# run: |
|
||||
# # Set variables for Gitea host, organization, repository, access token, and release details
|
||||
# GITEA_HOST="repo.retrodeck.net"
|
||||
# UPLOAD_HOST="upload.retrodeck.net"
|
||||
# ORGANIZATION="RetroDECK"
|
||||
# REPO="RetroDECK-cooker"
|
||||
# GITEA_TOKEN="${{ secrets.GITEA_TRIGGER_BUILD_TOKEN }}"
|
||||
|
@ -201,19 +218,22 @@ jobs:
|
|||
# # Upload artifacts
|
||||
# curl -X POST \
|
||||
# -H "Authorization: token ${GITEA_TOKEN}" \
|
||||
# -H "X-GitHub-Token: ${{ secrets.UPLOAD_TOKEN }}" \
|
||||
# -H "Content-Type: multipart/form-data" \
|
||||
# -F "attachment=@RetroDECK-cooker.flatpak" \
|
||||
# "http://$GITEA_HOST/api/v1/repos/$ORGANIZATION/$REPO/releases/$release_id/assets?name=RetroDECK-cooker.flatpak"
|
||||
# "http://$UPLOAD_HOST/api/v1/repos/$ORGANIZATION/$REPO/releases/$release_id/assets?name=RetroDECK-cooker.flatpak"
|
||||
|
||||
# # Upload artifacts sha
|
||||
# curl -X POST \
|
||||
# -H "Authorization: token ${GITEA_TOKEN}" \
|
||||
# -H "X-GitHub-Token: ${{ secrets.UPLOAD_TOKEN }}" \
|
||||
# -H "Content-Type: multipart/form-data" \
|
||||
# -F "attachment=@RetroDECK-cooker.flatpak.sha" \
|
||||
# "http://$GITEA_HOST/api/v1/repos/$ORGANIZATION/$REPO/releases/$release_id/assets?name=RetroDECK-cooker.flatpak.sha"
|
||||
# "http://$UPLOAD_HOST/api/v1/repos/$ORGANIZATION/$REPO/releases/$release_id/assets?name=RetroDECK-cooker.flatpak.sha"
|
||||
|
||||
# curl -X POST \
|
||||
# -H "Authorization: token ${GITEA_TOKEN}" \
|
||||
# -H "X-GitHub-Token: ${{ secrets.UPLOAD_TOKEN }}" \
|
||||
# -H "Content-Type: multipart/form-data" \
|
||||
# -F "attachment=@RetroDECK-Artifact.tar.gz" \
|
||||
# "http://$GITEA_HOST/api/v1/repos/$ORGANIZATION/$REPO/releases/$release_id/assets?name=RetroDECK-Artifact.tar.gz"
|
||||
# "http://$UPLOAD_HOST/api/v1/repos/$ORGANIZATION/$REPO/releases/$release_id/assets?name=RetroDECK-Artifact.tar.gz"
|
||||
|
|
56
.github/workflows/emulator-updates.yaml
vendored
Normal file
56
.github/workflows/emulator-updates.yaml
vendored
Normal file
|
@ -0,0 +1,56 @@
|
|||
name: Check Emulator Updates
|
||||
|
||||
on:
|
||||
# schedule:
|
||||
# - cron: '0 18 * * *'
|
||||
# push:
|
||||
# branches:
|
||||
# - main
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
check-updates:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: '3.x'
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install flatpak-builder-tools
|
||||
|
||||
- name: Check for emulator updates
|
||||
run: |
|
||||
flatpak-builder --check-updates ./net.retrodeck.retrodeck.yml --modules "modulo1,modulo2" # Sostituisci modulo1,modulo2 con i tuoi moduli specifici
|
||||
|
||||
- name: Configure Git
|
||||
run: |
|
||||
git config --global user.name "github-actions[bot]"
|
||||
git config --global user.email "github-actions[bot]@users.noreply.github.com"
|
||||
|
||||
- name: Create or update branch
|
||||
run: |
|
||||
git fetch origin
|
||||
if git rev-parse --verify origin/feat/auto-emulator-updates; then
|
||||
git branch -D feat/auto-emulator-updates
|
||||
fi
|
||||
git checkout -b feat/auto-emulator-updates
|
||||
git add .
|
||||
git commit -m "Update emulators"
|
||||
git push --set-upstream origin feat/auto-emulator-updates --force
|
||||
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@v5
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
source: feat/auto-emulator-updates
|
||||
destination: cooker-0.8.2b
|
||||
title: 'Automated Emulator Updates'
|
||||
body: 'This PR contains automated updates for specified emulators.'
|
4
.github/workflows/flathub_push_main.yml
vendored
4
.github/workflows/flathub_push_main.yml
vendored
|
@ -26,7 +26,7 @@ jobs:
|
|||
fi
|
||||
git clone --recursive https://github.com/flathub/net.retrodeck.retrodeck.git flathub
|
||||
cd $gits_folder
|
||||
git clone --recursive https://github.com/XargonWan/RetroDECK RetroDECK
|
||||
git clone --recursive https://github.com/RetroDECK/RetroDECK RetroDECK
|
||||
cd $gits_folder/RetroDECK
|
||||
|
||||
relname="main-"$(git rev-parse --short HEAD)
|
||||
|
@ -83,7 +83,7 @@ jobs:
|
|||
# curl -sL \
|
||||
# -H "Accept: application/vnd.github+json" \
|
||||
# -H "Authorization: Bearer ${{ secrets.TRIGGER_BUILD_TOKEN }}" \
|
||||
# https://api.github.com/repos/XargonWan/RetroDECK-cooker/releases \
|
||||
# https://api.github.com/repos/RetroDECK/Cooker/releases \
|
||||
# | jq .[0].tag_name \
|
||||
# | tr -d \" \
|
||||
# )
|
||||
|
|
35
.github/workflows/main-selfhosted.yml
vendored
35
.github/workflows/main-selfhosted.yml
vendored
|
@ -7,8 +7,8 @@ on:
|
|||
paths:
|
||||
- '.github/workflows/**'
|
||||
- 'automation_tools/**'
|
||||
- 'emu-configs/**'
|
||||
- 'es-configs/**'
|
||||
- 'config/**'
|
||||
- 'config/es-de/**'
|
||||
- 'functions/**'
|
||||
- 'rd-submodules/**'
|
||||
- '*.sh'
|
||||
|
@ -24,7 +24,7 @@ on:
|
|||
jobs:
|
||||
|
||||
Building_RetroDECK:
|
||||
runs-on: self-hosted
|
||||
runs-on: retrodeck
|
||||
steps:
|
||||
|
||||
# Circumventing this bug: https://github.com/flatpak/flatpak-builder/issues/317
|
||||
|
@ -33,7 +33,7 @@ jobs:
|
|||
continue-on-error: true
|
||||
|
||||
- name: Clone RetroDECK repo
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: 'true'
|
||||
|
||||
|
@ -93,7 +93,7 @@ jobs:
|
|||
- name: Getting version info
|
||||
id: version
|
||||
run: |
|
||||
appdata="https://raw.githubusercontent.com/XargonWan/RetroDECK/main/net.retrodeck.retrodeck.appdata.xml"
|
||||
appdata="https://raw.githubusercontent.com/RetroDECK/RetroDECK/main/net.retrodeck.retrodeck.appdata.xml"
|
||||
REL_VER=$(curl -s $appdata | xmlstarlet sel -t -v "//release/@version" | head -1)
|
||||
DES="$(curl -s $appdata | xmlstarlet sel -t -m "//release[1]" -v "description" -n | sed '1,2d;$d;s/^ */- /;/^- $/d')"
|
||||
echo "REL_VER=$REL_VER" >> $GITHUB_ENV
|
||||
|
@ -115,9 +115,20 @@ jobs:
|
|||
repo: RetroDECK
|
||||
continue-on-error: true
|
||||
|
||||
- name: Rewrite Tag
|
||||
run: |
|
||||
git submodule deinit -f --all
|
||||
git fetch --tags
|
||||
if git rev-parse --verify "${{ env.REL_VER }}" >/dev/null 2>&1; then # if the tag exists
|
||||
git tag -d "${{ env.REL_VER }}" # remove it from local repo
|
||||
git push --delete origin "${{ env.REL_VER }}" # and from remote
|
||||
fi
|
||||
git tag "${{ env.REL_VER }}" # Create the tag locally
|
||||
git push origin "${{ env.REL_VER }}" # Push the new tag in the remote repo
|
||||
|
||||
# In case it cannot publish the release at least it's providing the flatpak file for creating a manual release
|
||||
- name: Upload RetroDECK.flatpak
|
||||
uses: actions/upload-artifact@v3
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: retrodeck-flatpak
|
||||
path: RetroDECK.flatpak
|
||||
|
@ -127,6 +138,7 @@ jobs:
|
|||
run: |
|
||||
# Set variables for Gitea host, organization, repository, access token, and release details
|
||||
GITEA_HOST="repo.retrodeck.net"
|
||||
UPLOAD_HOST="upload.retrodeck.net"
|
||||
ORGANIZATION="RetroDECK"
|
||||
REPO="RetroDECK"
|
||||
GITEA_TOKEN="${{ secrets.GITEA_TRIGGER_BUILD_TOKEN }}"
|
||||
|
@ -154,21 +166,26 @@ jobs:
|
|||
# Upload artifacts
|
||||
curl -X POST \
|
||||
-H "Authorization: token ${GITEA_TOKEN}" \
|
||||
-H "X-GitHub-Token: ${{ secrets.UPLOAD_TOKEN }}" \
|
||||
-H "Content-Type: multipart/form-data" \
|
||||
-F "attachment=@RetroDECK.flatpak" \
|
||||
"http://$GITEA_HOST/api/v1/repos/$ORGANIZATION/$REPO/releases/$release_id/assets?name=RetroDECK-cooker.flatpak"
|
||||
"http://$UPLOAD_HOST/api/v1/repos/$ORGANIZATION/$REPO/releases/$release_id/assets?name=RetroDECK-cooker.flatpak"
|
||||
|
||||
curl -X POST \
|
||||
-H "Authorization: token ${GITEA_TOKEN}" \
|
||||
-H "X-GitHub-Token: ${{ secrets.UPLOAD_TOKEN }}" \
|
||||
-H "Content-Type: multipart/form-data" \
|
||||
-F "attachment=@RetroDECK-Artifact.tar.gz" \
|
||||
"http://$GITEA_HOST/api/v1/repos/$ORGANIZATION/$REPO/releases/$release_id/assets?name=RetroDECK-Artifact.tar.gz"
|
||||
"http://$UPLOAD_HOST/api/v1/repos/$ORGANIZATION/$REPO/releases/$release_id/assets?name=RetroDECK-Artifact.tar.gz"
|
||||
continue-on-error: true # this will be in place until we reate an artifacts website that bypasses cloudflare limit
|
||||
|
||||
- name: Upload RetroDECK.flatpak.sha to Gitea Release
|
||||
run: |
|
||||
curl -X POST \
|
||||
-H "Authorization: token ${GITEA_TOKEN}" \
|
||||
-H "X-GitHub-Token: ${{ secrets.UPLOAD_TOKEN }}" \
|
||||
-F "file=@RetroDECK.flatpak.sha" \
|
||||
"https://repo.retrodeck.net/RetroDECK/RetroDECK/releases/${{ env.REL_VER }}/assets?name=RetroDECK.flatpak.sha"
|
||||
"https://$UPLOAD_HOST/RetroDECK/RetroDECK/releases/${{ env.REL_VER }}/assets?name=RetroDECK.flatpak.sha"
|
||||
env:
|
||||
GITEA_TOKEN: ${{ secrets.GITEA_TRIGGER_BUILD_TOKEN }}
|
||||
continue-on-error: true # this will be in place until we reate an artifacts website that bypasses cloudflare limit
|
||||
|
|
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -18,7 +18,7 @@ backup
|
|||
tmp
|
||||
.godot
|
||||
rd-submodules/es-de/patches-tmp*
|
||||
.local/
|
||||
retrodeck-repo
|
||||
buildid
|
||||
*.bak
|
||||
incconfigs/
|
||||
|
|
9
.gitmodules
vendored
9
.gitmodules
vendored
|
@ -1,9 +0,0 @@
|
|||
[submodule "rd-submodules/shared-modules"]
|
||||
path = rd-submodules/shared-modules
|
||||
url = https://github.com/flathub/shared-modules.git
|
||||
[submodule "rd-submodules/retroarch"]
|
||||
path = rd-submodules/retroarch
|
||||
url = https://github.com/flathub/org.libretro.RetroArch.git
|
||||
[submodule "rd-submodules/ryujinx"]
|
||||
path = rd-submodules/ryujinx
|
||||
url = https://github.com/flathub/org.ryujinx.Ryujinx
|
27
README.md
27
README.md
|
@ -1,13 +1,13 @@
|
|||
<p float="center">
|
||||
<img src="https://github.com/XargonWan/RetroDECK/blob/main/res/logo.png?raw=true" alt="RetroDECK logo" width="600"/>
|
||||
<img src="https://github.com/RetroDECK/RetroDECK/blob/main/res/logo.png?raw=true" alt="RetroDECK logo" width="600"/>
|
||||
</p>
|
||||
|
||||
# RetroDECK on your device!
|
||||
|
||||
|
||||
<p float="center">
|
||||
<img src="https://github.com/XargonWan/RetroDECK/blob/main/res/screenshots/screen05.jpeg?raw=true" alt="screenshot" width="300"/>
|
||||
<img src="https://github.com/XargonWan/RetroDECK/blob/main/res/screenshots/screen06.jpeg?raw=true" alt="screenshot" width="300"/>
|
||||
<img src="https://github.com/RetroDECK/RetroDECK/blob/main/res/screenshots/screen05.jpeg?raw=true" alt="screenshot" width="300"/>
|
||||
<img src="https://github.com/RetroDECK/RetroDECK/blob/main/res/screenshots/screen06.jpeg?raw=true" alt="screenshot" width="300"/>
|
||||
</p>
|
||||
|
||||
Instead of having several different emulators, engines and frontends on your Linux/SteamOS system you only need one: RetroDECK.
|
||||
|
@ -15,7 +15,7 @@ Instead of having several different emulators, engines and frontends on your Lin
|
|||
![Flathub](https://img.shields.io/flathub/downloads/net.retrodeck.retrodeck)
|
||||
![Flathub](https://img.shields.io/flathub/v/net.retrodeck.retrodeck)
|
||||
![Discord](https://img.shields.io/discord/951662718102962256?label=discord)
|
||||
![GitHub](https://img.shields.io/github/license/XargonWan/RetroDECK)
|
||||
![GitHub](https://img.shields.io/github/license/RetroDECK/RetroDECK)
|
||||
[![Documentation Status](https://readthedocs.org/projects/retrodeck/badge/?version=latest)](https://retrodeck.readthedocs.io/en/latest/?badge=latest)
|
||||
|
||||
**The RetroDECK Wiki & FAQ**
|
||||
|
@ -77,7 +77,7 @@ For our long term vision you can check out the following wiki page:
|
|||
Use the supports channels on [Discord](https://discord.gg/WDc5C9YWMx) `🤝-community-support` and `🆘-support`.
|
||||
### The RetroDECK community:
|
||||
[Website](https://retrodeck.net) <br/>
|
||||
[Wiki](https://github.com/XargonWan/RetroDECK/wiki) <br/>
|
||||
[Wiki](https://github.com/RetroDECK/RetroDECK/wiki) <br/>
|
||||
[Discord](https://discord.gg/WDc5C9YWMx)<br/>
|
||||
[Lemmy](https://lemmy.zip/c/retrodeck)<br/>
|
||||
[Subreddit](https://www.reddit.com/r/retrodeck)
|
||||
|
@ -96,21 +96,22 @@ Read up here on how to help out, there is something for everyone:
|
|||
## Our repositories:
|
||||
| Name | Description |
|
||||
|-------------------------------------------------------------|-----------------------------------------------------------|
|
||||
| [RetroDECK](https://github.com/XargonWan/RetroDECK) | This one, our main repo where the core of the project is |
|
||||
| [RetroDECK-cooker](https://github.com/XargonWan/RetroDECK-cooker) | Where we publish our test build, no code is hosted here |
|
||||
| [RetroDECK-Wiki](https://github.com/XargonWan/RetroDECK-Wiki) | Where our wiki source code is |
|
||||
| [RetroDECK-website](https://github.com/XargonWan/RetroDECK-website) | Where our website source code is |
|
||||
| [RetroDECK](https://github.com/RetroDECK/RetroDECK) | This one, our main repo where the core of the project is |
|
||||
| [Cooker](https://github.com/RetroDECK/Cooker) | Where we publish our test build, no code is hosted here |
|
||||
| [RetroDECK/Wiki](https://github.com/RetroDECK/Wiki) | Where our wiki source code is |
|
||||
| [RetroDECK-website](https://github.com/RetroDECK/RetroDECK-website) | Where our website source code is |
|
||||
| [RetroDECK on Flathub](https://github.com/flathub/net.retrodeck.retrodeck) | Our little space in Flathub's organization |
|
||||
| [RetroDECK-MAME](https://github.com/XargonWan/RetroDECK-MAME) | MAME is big to build, so it's pre-built here and then imported in the build |
|
||||
| [RetroDECK-ES-DE](https://github.com/XargonWan/RetroDECK-ES-DE) | This is where we store our patched fork of ES-DE |
|
||||
| [RetroDECK/MAME](https://github.com/RetroDECK/MAME) | MAME is big to build, so it's pre-built here and then imported in the build |
|
||||
| [RetroDECK/ES-DE](https://github.com/RetroDECK/ES-DE) | This is where we store our patched fork of ES-DE |
|
||||
|
||||
And many more, for the full list please check our [repositories page on GitHub](https://github.com/orgs/RetroDECK/repositories).
|
||||
|
||||
# The RetroDECK Wiki
|
||||
|
||||
Please check out the [Wiki](https://github.com/XargonWan/RetroDECK/wiki) for even more information.
|
||||
Please check out the [Wiki](https://github.com/RetroDECK/RetroDECK/wiki) for even more information.
|
||||
|
||||
## The FAQ
|
||||
The RetroDECK [FAQ](https://github.com/XargonWan/RetroDECK/wiki/FAQs%3A-Frequently-asked-questions) on the wiki has a vast variety of questions and answers.
|
||||
The RetroDECK [FAQ](https://github.com/RetroDECK/RetroDECK/wiki/FAQs%3A-Frequently-asked-questions) on the wiki has a vast variety of questions and answers.
|
||||
|
||||
# How to get support?
|
||||
Use the supports channels on [Discord](https://discord.gg/WDc5C9YWMx).
|
||||
|
|
|
@ -30,7 +30,7 @@ log i "Today is $today_date"
|
|||
release_snippet="\
|
||||
<releases>
|
||||
<release version=\"$appdata_version\" date=\"$today_date\">
|
||||
<url>https://github.com/XargonWan/RetroDECK/releases/tag/$appdata_version</url>
|
||||
<url>https://github.com/RetroDECK/RetroDECK/releases/tag/$appdata_version</url>
|
||||
<description>
|
||||
RELEASE_NOTES_PLACEHOLDER
|
||||
</description>
|
||||
|
@ -41,7 +41,7 @@ xml_content=$(cat "$appdata_file")
|
|||
|
||||
# Replace RELEASE_NOTES_PLACEHOLDER with the actual release notes
|
||||
# TODO
|
||||
git clone https://github.com/XargonWan/RetroDECK.wiki.git /tmp/wiki
|
||||
git clone https://github.com/RetroDECK/RetroDECK.wiki.git /tmp/wiki
|
||||
|
||||
# Path to the markdown file
|
||||
wiki="/tmp/wiki/Version-history:-Patch-Notes.md"
|
||||
|
|
|
@ -1,15 +1,25 @@
|
|||
# The proper format for this file is
|
||||
# ACTION^PLACEHOLDERTEXT^URL^REPO(Optional)
|
||||
# hash^DOOMSHAPLACEHOLDER^https://buildbot.libretro.com/assets/cores/DOOM/Doom%20%28Shareware%29.zip
|
||||
hash^DUCKSTATIONSHAPLACEHOLDER^https://github.com/stenzek/duckstation/releases/download/preview/DuckStation-x64.AppImage
|
||||
# Please leave some newlines in the end of this file or it will break
|
||||
|
||||
latestcommit^UNIVERSALDYNAMICINPUTCOMMITPLACEHOLDER^https://github.com/Venomalia/UniversalDynamicInput^main
|
||||
outside_file^VERSIONPLACEHOLDER^${GITHUB_WORKSPACE}/buildid
|
||||
branch^THISBRANCH
|
||||
|
||||
hash^RASHAPLACEHOLDER^https://buildbot.libretro.com/nightly/linux/x86_64/RetroArch.7z
|
||||
hash^SAMEDUCKSHAPLACEHOLDER^https://buildbot.libretro.com/nightly/linux/x86_64/latest/sameduck_libretro.so.zip
|
||||
hash^PPSSPPBIOSHASHPLACEHOLDER^https://github.com/hrydgard/ppsspp/archive/refs/heads/master.zip
|
||||
hash^MSXBIOSHASHPLACEHOLDER^http://bluemsx.msxblue.com/rel_download/blueMSXv282full.zip
|
||||
hash^XEMUHDDHASHPLACEHOLDER^https://github.com/mborgerson/xemu-hdd-image/releases/latest/download/xbox_hdd.qcow2.zip
|
||||
hash^VITA3KSHAPLACEHOLDER^https://github.com/Vita3K/Vita3K/releases/download/continuous/ubuntu-latest.zip
|
||||
hash^RANIGHTLYCORESPLACEHOLDER^https://buildbot.libretro.com/nightly/linux/x86_64/RetroArch_cores.7z
|
||||
hash^RETRODECKMAMEPLACEHOLDER^"https://github.com/XargonWan/RetroDECK-MAME/releases/download/$(curl -s https://api.github.com/repos/XargonWan/RetroDECK-MAME/releases/latest | grep -oP '"tag_name": "\K(.*?)(?=")')/RetroDECK-MAME-Artifact.tar.gz"
|
||||
url^RETRODECKMAMEURLPLACEHOLDER^"https://github.com/XargonWan/RetroDECK-MAME/releases/download/$(curl -s https://api.github.com/repos/XargonWan/RetroDECK-MAME/releases/latest | grep -oP '"tag_name": "\K(.*?)(?=")')/RetroDECK-MAME-Artifact.tar.gz"
|
||||
latestcommit^UNIVERSALDYNAMICINPUTCOMMITPLACEHOLDER^https://github.com/Venomalia/UniversalDynamicInput^main
|
||||
outside_file^VERSIONPLACEHOLDER^${GITHUB_WORKSPACE}/buildid
|
||||
branch^THISBRANCH
|
||||
|
||||
hash^RETRODECKESDELATEST^https://github.com/RetroDECK/ES-DE/releases/latest/download/RetroDECK-ES-DE-Artifact.tar.gz
|
||||
hash^RETRODECKPPSSPPLATEST^https://github.com/RetroDECK/org.ppsspp.PPSSPP/releases/latest/download/RetroDECK-PPSSPP-Artifact.tar.gz
|
||||
hash^RETRODECKDOLPHINLATEST^https://github.com/RetroDECK/org.DolphinEmu.dolphin-emu/releases/latest/download/RetroDECK-dolphin-Artifact.tar.gz
|
||||
hash^RETRODECKPRIMEHACKLATEST^https://github.com/RetroDECK/io.github.shiiion.primehack/releases/latest/download/RetroDECK-primehack-Artifact.tar.gz
|
||||
hash^RETRODECKMELONDSLATEST^https://github.com/RetroDECK/net.kuribo64.melonDS/releases/latest/download/RetroDECK-melonds-Artifact.tar.gz
|
||||
hash^RETRODECKSOLARUSLATEST^https://github.com/RetroDECK/org.solarus_games.solarus.Launcher/releases/latest/download/RetroDECK-solarus-Artifact.tar.gz
|
||||
hash^RETRODECKGZDOOMLATEST^https://github.com/RetroDECK/org.zdoom.GZDoom/releases/latest/download/RetroDECK-gzdoom-Artifact.tar.gz
|
||||
hash^RETRODECKMAMELATEST^https://github.com/RetroDECK/MAME/releases/latest/download/RetroDECK-MAME-Artifact.tar.gz
|
File diff suppressed because it is too large
Load diff
|
@ -3,9 +3,9 @@
|
|||
# This is building the bundle RetroDECK.flatpak after the download and build steps are done
|
||||
|
||||
if [ "${GITHUB_REF##*/}" = "main" ]; then
|
||||
flatpak build-bundle "${GITHUB_WORKSPACE}/.local" "$GITHUB_WORKSPACE/RetroDECK.flatpak" net.retrodeck.retrodeck
|
||||
flatpak build-bundle "${GITHUB_WORKSPACE}/retrodeck-repo" "$GITHUB_WORKSPACE/RetroDECK.flatpak" net.retrodeck.retrodeck
|
||||
sha256sum RetroDECK.flatpak > RetroDECK.flatpak.sha
|
||||
else
|
||||
flatpak build-bundle "${GITHUB_WORKSPACE}/.local" "$GITHUB_WORKSPACE/RetroDECK-cooker.flatpak" net.retrodeck.retrodeck
|
||||
flatpak build-bundle "${GITHUB_WORKSPACE}/retrodeck-repo" "$GITHUB_WORKSPACE/RetroDECK-cooker.flatpak" net.retrodeck.retrodeck
|
||||
sha256sum RetroDECK-cooker.flatpak > RetroDECK-cooker.flatpak.sha
|
||||
fi
|
|
@ -12,12 +12,12 @@ else
|
|||
FOLDER=retrodeck-flatpak-cooker
|
||||
fi
|
||||
|
||||
mkdir -vp "${GITHUB_WORKSPACE}"/{.local,retrodeck-flatpak-cooker}
|
||||
mkdir -vp "${GITHUB_WORKSPACE}"/{retrodeck-repo,retrodeck-flatpak-cooker}
|
||||
|
||||
flatpak-builder --user --force-clean \
|
||||
--install-deps-from=flathub \
|
||||
--install-deps-from=flathub-beta \
|
||||
--repo="${GITHUB_WORKSPACE}/.local" \
|
||||
--repo="${GITHUB_WORKSPACE}/retrodeck-repo" \
|
||||
--download-only \
|
||||
"${GITHUB_WORKSPACE}/${FOLDER}" \
|
||||
net.retrodeck.retrodeck.yml
|
||||
|
|
|
@ -12,13 +12,13 @@ else
|
|||
FOLDER=retrodeck-flatpak-cooker
|
||||
fi
|
||||
|
||||
mkdir -vp ${GITHUB_WORKSPACE}/.local
|
||||
mkdir -vp ${GITHUB_WORKSPACE}/retrodeck-repo
|
||||
mkdir -vp ${GITHUB_WORKSPACE}/"$FOLDER"
|
||||
|
||||
flatpak-builder --user --force-clean \
|
||||
--install-deps-from=flathub \
|
||||
--install-deps-from=flathub-beta \
|
||||
--repo=${GITHUB_WORKSPACE}/.local \
|
||||
--repo=${GITHUB_WORKSPACE}/retrodeck-repo \
|
||||
--disable-download \
|
||||
"${GITHUB_WORKSPACE}/$FOLDER" \
|
||||
net.retrodeck.retrodeck.yml
|
|
@ -42,8 +42,8 @@ appdata_version=$(fetch_appdata_version)
|
|||
echo -e "Appdata:\t\t$appdata_version"
|
||||
|
||||
# Additional checks
|
||||
if [[ "$manifest_version" == "main" || "$manifest_version" == "THISBRANCH" ]]; then
|
||||
echo "Manifest version cannot be 'main' or 'THISBRANCH'. Please fix it."
|
||||
if [[ "$manifest_version" == "main" || "$manifest_version" == "THISBRANCH" || "$manifest_version" == *"cooker"* ]]; then
|
||||
echo "Manifest version cannot be 'main', 'THISBRANCH', or contain 'cooker'. Please fix it."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
|
|
@ -1,44 +1,57 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Set script to exit immediately on any error
|
||||
set -e
|
||||
|
||||
# For the file paths to work correctly, call this script with this command from the cloned repo folder root:
|
||||
# sh automation_tools/pre_build_automation.sh
|
||||
# Different actions need different information in the task list file
|
||||
# branch: This changes the placeholder text to the currently-detected GIT branch if an automated build was started from a PR environment.
|
||||
# hash: Finds the SHA256 hash of a file online and updates the placeholder in the manifest.
|
||||
# hash: Finds the SHA256 hash of a file online and updates the placeholder in the manifest.
|
||||
# Needs the URL of the file, in this line format: hash^PLACEHOLDERTEXT^url
|
||||
# latestcommit: Finds the most recent commit of a git repo and updated the placeholder in the manifest.
|
||||
# latestcommit: Finds the most recent commit of a git repo and updates the placeholder in the manifest.
|
||||
# Needs the URL of the repo and the branch to find the latest commit from, in this line format: latestcommit^PLACEHOLDERTEXT^url^branch
|
||||
# latestghtag: Finds the most recent tag on a GitHub repo, for repos that don't have normal releases, but also shouldn't use the latest commit
|
||||
# Needs the URL of the repo, in this line format: latestghtag^PLACEHOLDERTEXT^url
|
||||
# latestghrelease: Finds the download URL and SHA256 hash of the latest release from a git repo.
|
||||
# Needs the API URL of the repo, in this line format: latestappimage^PLACEHOLDERTEXT^https://api.github.com/repos/<owner-name>/<repo-name>/releases/latest^<file suffix>
|
||||
# As this command updates two different placeholders (one for the URL, one for the file hash) in the manifest,
|
||||
# Needs the API URL of the repo, in this line format: latestghrelease^PLACEHOLDERTEXT^https://api.github.com/repos/<owner-name>/<repo-name>/releases/latest^<file suffix>
|
||||
# As this command updates two different placeholders (one for the URL, one for the file hash) in the manifest,
|
||||
# the URL that would be used in the above example is "PLACEHOLDERTEXT" and the hash placeholder text would be "HASHPLACEHOLDERTEXT"
|
||||
# The "HASH" prefix of the placeholder text is hardcoded in the script
|
||||
# The "HASH" prefix of the hash placeholder text is hardcoded in the script.
|
||||
# The <file_suffix> will be the file extension or other identifying suffix at the end of the file name that can be used to select from multiple releases.
|
||||
# Example: If there are these file options for a given release:
|
||||
# yuzu-mainline-20240205-149629642.AppImage
|
||||
# yuzu-linux-20240205-149629642-source.tar.xz
|
||||
# yuzu-linux-20240205-149629642-debug.tar.xz
|
||||
# yuzu-linux-20240205-149629642-debug.tar.xz
|
||||
# Entering "AppImage" (without quotes) for the <file_suffix> will identify yuzu-mainline-20240205-149629642.AppImage
|
||||
# Entering "source-.tar.xz" (without quotes) for the <file_suffix> will identify yuzu-linux-20240205-149629642-source.tar.xz
|
||||
# Entering "debug-tar.xz" (without quotes) for the <file_suffix> will identify yuzu-linux-20240205-149629642-debug.tar.xz
|
||||
# As a file extension like ".tar.zx" can apply to multiple file options, the entire part that is appended to each release name should be included.
|
||||
# As a file extension like ".tar.xz" can apply to multiple file options, the entire part that is appended to each release name should be included.
|
||||
# The <file_suffix> will also only consider entries where the given suffix is at the end of the file name. So "AppImage" will identify "file.AppImage" but not "file.AppImage.zsync"
|
||||
# latestghreleasesha: Finds the SHA256 hash of a specific asset in the latest release from a git repo.
|
||||
# Needs the API URL of the repo, in this line format: latestghreleasesha^PLACEHOLDERTEXT^https://api.github.com/repos/<owner-name>/<repo-name>/releases/latest^<file suffix>
|
||||
# This command updates the placeholder in the manifest with the SHA256 hash of the specified asset.
|
||||
# outside_file: Prints the contents of a file from the build environment (such as the buildid file) and replaces the placeholder text with those contents.
|
||||
# outside_env_var: Gets the value of an environmental variable from the build environment (the output of "echo $var" from the terminal) and replaces the placeholder text with that value.
|
||||
# custom_command: Runs a single command explicitly as written in the $URL field of the task list, including variable and command expansion. This should work the same as if you were runnig the command directly from the terminal.
|
||||
# custom_command: Runs a single command explicitly as written in the $URL field of the task list, including variable and command expansion. This should work the same as if you were running the command directly from the terminal.
|
||||
# This command does not need a PLACEHOLDERTEXT field in the task list, so needs to be in this syntax: custom_command^^$COMMAND
|
||||
# url: This is used to calculate a dynamic URL and the value to the $caluculated_url environmental variable, for use in other subsequent commands.
|
||||
# url: This is used to calculate a dynamic URL and the value to the $calculated_url environmental variable, for use in other subsequent commands.
|
||||
|
||||
rd_manifest=${GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml
|
||||
automation_task_list=${GITHUB_WORKSPACE}/automation_tools/automation_task_list.cfg
|
||||
current_branch=$(git rev-parse --abbrev-ref HEAD)
|
||||
# Define paths
|
||||
rd_manifest="${GITHUB_WORKSPACE}/net.retrodeck.retrodeck.yml"
|
||||
automation_task_list="${GITHUB_WORKSPACE}/automation_tools/automation_task_list.cfg"
|
||||
|
||||
# During the PR automated tests instead of the branch name is returned "HEAD", fixing it
|
||||
if [ $current_branch == "HEAD" ]; then
|
||||
echo "Looks like we are on a PR environment, retrieving the branch name from which the PR is raised."
|
||||
current_branch=$(echo $GITHUB_REF | sed 's@refs/heads/@@')
|
||||
echo "The branch name from which the PR is raised is \"$current_branch\"."
|
||||
fi
|
||||
# Retrieve current git branch
|
||||
get_current_branch() {
|
||||
local branch=$(git rev-parse --abbrev-ref HEAD)
|
||||
if [ "$branch" == "HEAD" ]; then
|
||||
echo "$GITHUB_REF" | sed 's@refs/heads/@@'
|
||||
else
|
||||
echo "$branch"
|
||||
fi
|
||||
}
|
||||
|
||||
current_branch=$(get_current_branch)
|
||||
|
||||
echo "Manifest location: $rd_manifest"
|
||||
echo "Automation task list location: $automation_task_list"
|
||||
|
@ -47,93 +60,130 @@ echo "Task list contents:"
|
|||
cat "$automation_task_list"
|
||||
echo
|
||||
|
||||
# Update all collected information
|
||||
while IFS="^" read -r action placeholder url branch
|
||||
do
|
||||
if [[ ! $action == "#"* ]] && [[ ! -z "$action" ]]; then
|
||||
# Functions to handle different actions
|
||||
handle_branch() {
|
||||
local placeholder="$1"
|
||||
echo "Replacing placeholder $placeholder with branch $current_branch"
|
||||
/bin/sed -i 's^'"$placeholder"'^'"$current_branch"'^g' "$rd_manifest"
|
||||
}
|
||||
|
||||
handle_hash() {
|
||||
local placeholder="$1"
|
||||
local url="$2"
|
||||
local calculated_url=$(eval echo "$url")
|
||||
local hash=$(curl -sL "$calculated_url" | sha256sum | cut -d ' ' -f1)
|
||||
echo "Replacing placeholder $placeholder with hash $hash"
|
||||
/bin/sed -i 's^'"$placeholder"'^'"$hash"'^g' "$rd_manifest"
|
||||
}
|
||||
|
||||
handle_latestcommit() {
|
||||
local placeholder="$1"
|
||||
local url="$2"
|
||||
local branch="$3"
|
||||
local commit=$(git ls-remote "$url" "$branch" | cut -f1)
|
||||
echo "Replacing placeholder $placeholder with latest commit $commit"
|
||||
/bin/sed -i 's^'"$placeholder"'^'"$commit"'^g' "$rd_manifest"
|
||||
}
|
||||
|
||||
handle_latestghtag() {
|
||||
local placeholder="$1"
|
||||
local url="$2"
|
||||
local tag=$(git ls-remote --tags "$url" | tail -n 1 | cut -f2 | sed 's|refs/tags/||')
|
||||
echo "Replacing placeholder $placeholder with latest tag $tag"
|
||||
/bin/sed -i 's^'"$placeholder"'^'"$tag"'^g' "$rd_manifest"
|
||||
}
|
||||
|
||||
handle_latestghrelease() {
|
||||
local placeholder="$1"
|
||||
local url="$2"
|
||||
local suffix="$3"
|
||||
echo "Fetching release data from: $url"
|
||||
local release_data=$(curl -s "$url")
|
||||
echo "Release data fetched."
|
||||
local ghreleaseurl=$(echo "$release_data" | jq -r ".assets[] | select(.name | endswith(\"$suffix\")).browser_download_url")
|
||||
|
||||
if [[ -z "$ghreleaseurl" ]]; then
|
||||
echo "Error: No asset found with suffix $suffix"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
local ghreleasehash=$(curl -sL "$ghreleaseurl" | sha256sum | cut -d ' ' -f1)
|
||||
|
||||
echo "Replacing placeholder $placeholder with URL $ghreleaseurl and hash $ghreleasehash"
|
||||
/bin/sed -i 's^'"$placeholder"'^'"$ghreleaseurl"'^g' "$rd_manifest"
|
||||
/bin/sed -i 's^'"HASHFOR$placeholder"'^'"$ghreleasehash"'^g' "$rd_manifest"
|
||||
}
|
||||
|
||||
handle_latestghreleasesha() {
|
||||
local placeholder="$1"
|
||||
local url="$2"
|
||||
local suffix="$3"
|
||||
echo "Fetching release data from: $url"
|
||||
local release_data=$(curl -s "$url")
|
||||
echo "Release data fetched."
|
||||
local ghreleaseurl=$(echo "$release_data" | jq -r ".assets[] | select(.name | endswith(\"$suffix\")).browser_download_url")
|
||||
|
||||
if [[ -z "$ghreleaseurl" ]]; then
|
||||
echo "Error: No asset found with suffix $suffix"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
local ghreleasehash=$(curl -sL "$ghreleaseurl" | sha256sum | cut -d ' ' -f1)
|
||||
|
||||
echo "Replacing placeholder $placeholder with hash $ghreleasehash"
|
||||
/bin/sed -i 's^'"$placeholder"'^'"$ghreleasehash"'^g' "$rd_manifest"
|
||||
}
|
||||
|
||||
handle_outside_file() {
|
||||
local placeholder="$1"
|
||||
local file_path="$2"
|
||||
if [[ "$file_path" == \$* ]]; then
|
||||
eval file_path="$file_path"
|
||||
fi
|
||||
local content=$(cat "$file_path")
|
||||
echo "Replacing placeholder $placeholder with content of file $file_path"
|
||||
/bin/sed -i 's^'"$placeholder"'^'"$content"'^g' "$rd_manifest"
|
||||
}
|
||||
|
||||
handle_outside_env_var() {
|
||||
local placeholder="$1"
|
||||
local var_name="$2"
|
||||
if [[ "$var_name" == \$* ]]; then
|
||||
eval var_name="$var_name"
|
||||
fi
|
||||
local value=$(echo "$var_name")
|
||||
echo "Replacing placeholder $placeholder with environment variable $value"
|
||||
/bin/sed -i 's^'"$placeholder"'^'"$value"'^g' "$rd_manifest"
|
||||
}
|
||||
|
||||
handle_custom_command() {
|
||||
local command="$1"
|
||||
echo "Executing custom command: $command"
|
||||
eval "$command"
|
||||
}
|
||||
|
||||
handle_url() {
|
||||
local placeholder="$1"
|
||||
local url="$2"
|
||||
local calculated_url=$(eval echo "$url")
|
||||
echo "Replacing placeholder $placeholder with calculated URL $calculated_url"
|
||||
/bin/sed -i 's^'"$placeholder"'^'"$calculated_url"'^g' "$rd_manifest"
|
||||
}
|
||||
|
||||
# Process the task list
|
||||
while IFS="^" read -r action placeholder url branch || [[ -n "$action" ]]; do
|
||||
if [[ ! "$action" == "#"* ]] && [[ -n "$action" ]]; then
|
||||
case "$action" in
|
||||
|
||||
"branch" )
|
||||
echo
|
||||
echo "Placeholder text: $placeholder"
|
||||
echo "Current branch:" "$current_branch"
|
||||
echo
|
||||
/bin/sed -i 's^'"$placeholder"'^'"$current_branch"'^g' $rd_manifest
|
||||
;;
|
||||
|
||||
"hash" )
|
||||
echo
|
||||
echo "Placeholder text: $placeholder"
|
||||
calculated_url=$(eval echo "$url") # in case the url has to be calculated from an expression
|
||||
echo "URL to hash: $calculated_url"
|
||||
echo
|
||||
hash=$(curl -sL "$calculated_url" | sha256sum | cut -d ' ' -f1)
|
||||
echo "Hash found: $hash"
|
||||
/bin/sed -i 's^'"$placeholder"'^'"$hash"'^' $rd_manifest
|
||||
;;
|
||||
|
||||
"latestcommit" )
|
||||
echo
|
||||
echo "Placeholder text: $placeholder"
|
||||
echo "Repo to get latest commit from: $url branch: $branch"
|
||||
echo
|
||||
commit=$(git ls-remote "$url" "$branch" | cut -f1)
|
||||
echo "Commit found: $commit"
|
||||
/bin/sed -i 's^'"$placeholder"'^'"$commit"'^' $rd_manifest
|
||||
;;
|
||||
|
||||
"latestghrelease" )
|
||||
echo
|
||||
echo "Placeholder text: $placeholder"
|
||||
echo "Repo to look for AppImage releases: $url"
|
||||
echo
|
||||
ghreleaseurl=$(curl -s "$url" | grep browser_download_url | grep "$branch\""$ | cut -d : -f 2,3 | tr -d \" | sed -n 1p | tr -d ' ')
|
||||
echo "GitHub release URL found: $ghreleaseurl"
|
||||
/bin/sed -i 's^'"$placeholder"'^'"$ghreleaseurl"'^' $rd_manifest
|
||||
ghreleasehash=$(curl -sL "$ghreleaseurl" | sha256sum | cut -d ' ' -f1)
|
||||
echo "GitHub release hash found: $ghreleasehash"
|
||||
/bin/sed -i 's^'"HASHFOR$placeholder"'^'"$ghreleasehash"'^' $rd_manifest
|
||||
;;
|
||||
|
||||
"outside_file" )
|
||||
if [[ "$url" = \$* ]]; then # If value is a reference to a variable name
|
||||
eval url="$url"
|
||||
fi
|
||||
echo
|
||||
echo "Placeholder text: $placeholder"
|
||||
echo "Information being injected: $(cat $url)"
|
||||
echo
|
||||
/bin/sed -i 's^'"$placeholder"'^'"$(cat $url)"'^' $rd_manifest
|
||||
;;
|
||||
|
||||
"outside_env_var" )
|
||||
if [[ "$url" = \$* ]]; then # If value is a reference to a variable name
|
||||
eval url="$url"
|
||||
fi
|
||||
echo
|
||||
echo "Placeholder text: $placeholder"
|
||||
echo "Information being injected: $(echo $url)"
|
||||
echo
|
||||
/bin/sed -i 's^'"$placeholder"'^'"$(echo $url)"'^' $rd_manifest
|
||||
;;
|
||||
|
||||
"custom_command" )
|
||||
echo
|
||||
echo "Command to run: $url"
|
||||
echo
|
||||
eval "$url"
|
||||
;;
|
||||
|
||||
"url" )
|
||||
# this is used to calculate a dynamic url
|
||||
echo
|
||||
echo "Placeholder text: $placeholder"
|
||||
calculated_url=$(eval echo "$url")
|
||||
echo "Information being injected: $calculated_url"
|
||||
echo
|
||||
/bin/sed -i 's^'"$placeholder"'^'"$calculated_url"'^' $rd_manifest
|
||||
;;
|
||||
|
||||
"branch" ) handle_branch "$placeholder" ;;
|
||||
"hash" ) handle_hash "$placeholder" "$url" ;;
|
||||
"latestcommit" ) handle_latestcommit "$placeholder" "$url" "$branch" ;;
|
||||
"latestghtag" ) handle_latestghtag "$placeholder" "$url" ;;
|
||||
"latestghrelease" ) handle_latestghrelease "$placeholder" "$url" "$branch" ;;
|
||||
"latestghreleasesha" ) handle_latestghreleasesha "$placeholder" "$url" "$branch" ;;
|
||||
"outside_file" ) handle_outside_file "$placeholder" "$url" ;;
|
||||
"outside_env_var" ) handle_outside_env_var "$placeholder" "$url" ;;
|
||||
"custom_command" ) handle_custom_command "$url" ;;
|
||||
"url" ) handle_url "$placeholder" "$url" ;;
|
||||
esac
|
||||
fi
|
||||
done < "$automation_task_list"
|
||||
|
|
|
@ -12,7 +12,7 @@ manifest_content=$(cat "$manifest")
|
|||
|
||||
fetch_repo_version(){
|
||||
# Getting latest RetroDECK release info
|
||||
LATEST_RELEASE=$(curl -s "https://api.github.com/repos/XargonWan/RetroDECK/releases/latest")
|
||||
LATEST_RELEASE=$(curl -s "https://api.github.com/repos/RetroDECK/RetroDECK/releases/latest")
|
||||
# Extracting tag name from the latest release
|
||||
repo_version=$(echo "$LATEST_RELEASE" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
|
||||
# Printing results
|
||||
|
@ -32,3 +32,5 @@ fetch_manifest_version(){
|
|||
manifest_version=$(echo "$manifest_version" | awk '{$1=$1;print}')
|
||||
echo "$manifest_version"
|
||||
}
|
||||
|
||||
echo "Version extractor functions loaded"
|
|
@ -25,7 +25,7 @@
|
|||
</controller>
|
||||
<controller>
|
||||
<api>SDLController</api>
|
||||
<uuid>0_03000000de280000ff11000001000000</uuid>
|
||||
<uuid>0_030079f6de280000ff11000001000000</uuid>
|
||||
<display_name>Steam Virtual Gamepad</display_name>
|
||||
<rumble>0</rumble>
|
||||
<axis>
|
||||
|
@ -41,6 +41,54 @@
|
|||
<range>1</range>
|
||||
</trigger>
|
||||
<mappings>
|
||||
<entry>
|
||||
<mapping>25</mapping>
|
||||
<button>8</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>1</mapping>
|
||||
<button>1</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>2</mapping>
|
||||
<button>0</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>3</mapping>
|
||||
<button>3</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>4</mapping>
|
||||
<button>2</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>5</mapping>
|
||||
<button>9</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>6</mapping>
|
||||
<button>10</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>7</mapping>
|
||||
<button>42</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>8</mapping>
|
||||
<button>43</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>9</mapping>
|
||||
<button>6</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>10</mapping>
|
||||
<button>4</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>11</mapping>
|
||||
<button>11</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>24</mapping>
|
||||
<button>40</button>
|
||||
|
@ -93,50 +141,6 @@
|
|||
<mapping>12</mapping>
|
||||
<button>12</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>11</mapping>
|
||||
<button>11</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>10</mapping>
|
||||
<button>4</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>9</mapping>
|
||||
<button>6</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>8</mapping>
|
||||
<button>43</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>7</mapping>
|
||||
<button>42</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>6</mapping>
|
||||
<button>10</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>5</mapping>
|
||||
<button>9</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>4</mapping>
|
||||
<button>3</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>3</mapping>
|
||||
<button>2</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>2</mapping>
|
||||
<button>1</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>1</mapping>
|
||||
<button>0</button>
|
||||
</entry>
|
||||
</mappings>
|
||||
</controller>
|
||||
</emulated_controller>
|
|
@ -4,7 +4,7 @@
|
|||
<profile>SteamInput-P1</profile>
|
||||
<controller>
|
||||
<api>SDLController</api>
|
||||
<uuid>0_03000000de280000ff11000001000000</uuid>
|
||||
<uuid>0_030079f6de280000ff11000001000000</uuid>
|
||||
<display_name>Steam Virtual Gamepad</display_name>
|
||||
<rumble>0</rumble>
|
||||
<axis>
|
||||
|
@ -20,6 +20,10 @@
|
|||
<range>1</range>
|
||||
</trigger>
|
||||
<mappings>
|
||||
<entry>
|
||||
<mapping>25</mapping>
|
||||
<button>8</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>24</mapping>
|
||||
<button>40</button>
|
||||
|
@ -65,56 +69,56 @@
|
|||
<button>14</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>1</mapping>
|
||||
<button>0</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>2</mapping>
|
||||
<button>1</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>3</mapping>
|
||||
<button>2</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>4</mapping>
|
||||
<button>3</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>5</mapping>
|
||||
<button>9</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>6</mapping>
|
||||
<button>10</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>7</mapping>
|
||||
<button>42</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>8</mapping>
|
||||
<button>43</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>9</mapping>
|
||||
<button>6</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>10</mapping>
|
||||
<button>4</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>11</mapping>
|
||||
<button>11</button>
|
||||
<mapping>13</mapping>
|
||||
<button>13</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>12</mapping>
|
||||
<button>12</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>13</mapping>
|
||||
<button>13</button>
|
||||
<mapping>11</mapping>
|
||||
<button>11</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>10</mapping>
|
||||
<button>4</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>9</mapping>
|
||||
<button>6</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>8</mapping>
|
||||
<button>43</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>7</mapping>
|
||||
<button>42</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>6</mapping>
|
||||
<button>10</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>5</mapping>
|
||||
<button>9</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>4</mapping>
|
||||
<button>2</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>3</mapping>
|
||||
<button>3</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>2</mapping>
|
||||
<button>0</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>1</mapping>
|
||||
<button>1</button>
|
||||
</entry>
|
||||
</mappings>
|
||||
</controller>
|
|
@ -4,7 +4,7 @@
|
|||
<profile>SteamInput-P1</profile>
|
||||
<controller>
|
||||
<api>SDLController</api>
|
||||
<uuid>0_03000000de280000ff11000001000000</uuid>
|
||||
<uuid>0_030079f6de280000ff11000001000000</uuid>
|
||||
<display_name>Steam Virtual Gamepad</display_name>
|
||||
<rumble>0</rumble>
|
||||
<axis>
|
||||
|
@ -20,6 +20,58 @@
|
|||
<range>1</range>
|
||||
</trigger>
|
||||
<mappings>
|
||||
<entry>
|
||||
<mapping>1</mapping>
|
||||
<button>1</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>2</mapping>
|
||||
<button>0</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>3</mapping>
|
||||
<button>3</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>4</mapping>
|
||||
<button>2</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>5</mapping>
|
||||
<button>9</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>6</mapping>
|
||||
<button>10</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>7</mapping>
|
||||
<button>42</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>8</mapping>
|
||||
<button>43</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>9</mapping>
|
||||
<button>6</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>10</mapping>
|
||||
<button>4</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>11</mapping>
|
||||
<button>11</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>12</mapping>
|
||||
<button>12</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>25</mapping>
|
||||
<button>8</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>24</mapping>
|
||||
<button>40</button>
|
||||
|
@ -64,54 +116,6 @@
|
|||
<mapping>14</mapping>
|
||||
<button>14</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>1</mapping>
|
||||
<button>0</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>2</mapping>
|
||||
<button>1</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>3</mapping>
|
||||
<button>2</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>4</mapping>
|
||||
<button>3</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>5</mapping>
|
||||
<button>9</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>6</mapping>
|
||||
<button>10</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>7</mapping>
|
||||
<button>42</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>8</mapping>
|
||||
<button>43</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>9</mapping>
|
||||
<button>6</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>10</mapping>
|
||||
<button>4</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>11</mapping>
|
||||
<button>11</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>12</mapping>
|
||||
<button>12</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>13</mapping>
|
||||
<button>13</button>
|
|
@ -1,7 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<emulated_controller>
|
||||
<type>Wii U Pro Controller</type>
|
||||
<profile>SteamInput-P2</profile>
|
||||
<controller>
|
||||
<api>SDLController</api>
|
||||
<uuid>1_03000000de280000ff11000001000000</uuid>
|
||||
|
@ -19,65 +18,65 @@
|
|||
<range>1</range>
|
||||
</trigger>
|
||||
<mappings>
|
||||
<entry>
|
||||
<mapping>12</mapping>
|
||||
<button>11</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>13</mapping>
|
||||
<button>12</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>14</mapping>
|
||||
<button>13</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>15</mapping>
|
||||
<button>14</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>16</mapping>
|
||||
<button>7</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>17</mapping>
|
||||
<button>8</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>18</mapping>
|
||||
<button>45</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>19</mapping>
|
||||
<button>39</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>20</mapping>
|
||||
<button>44</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>21</mapping>
|
||||
<button>38</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>22</mapping>
|
||||
<button>47</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>23</mapping>
|
||||
<button>41</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>1</mapping>
|
||||
<button>0</button>
|
||||
<mapping>22</mapping>
|
||||
<button>47</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>21</mapping>
|
||||
<button>38</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>20</mapping>
|
||||
<button>44</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>19</mapping>
|
||||
<button>39</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>18</mapping>
|
||||
<button>45</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>17</mapping>
|
||||
<button>8</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>16</mapping>
|
||||
<button>7</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>15</mapping>
|
||||
<button>14</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>24</mapping>
|
||||
<button>46</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>2</mapping>
|
||||
<button>1</button>
|
||||
<button>0</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>3</mapping>
|
||||
<button>2</button>
|
||||
<button>3</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>4</mapping>
|
||||
<button>3</button>
|
||||
<button>2</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>5</mapping>
|
||||
|
@ -103,17 +102,17 @@
|
|||
<mapping>10</mapping>
|
||||
<button>4</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>12</mapping>
|
||||
<button>11</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>25</mapping>
|
||||
<button>40</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>24</mapping>
|
||||
<button>46</button>
|
||||
<mapping>14</mapping>
|
||||
<button>13</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>1</mapping>
|
||||
<button>1</button>
|
||||
</entry>
|
||||
</mappings>
|
||||
</controller>
|
|
@ -20,25 +20,29 @@
|
|||
</trigger>
|
||||
<mappings>
|
||||
<entry>
|
||||
<mapping>24</mapping>
|
||||
<button>46</button>
|
||||
<mapping>13</mapping>
|
||||
<button>12</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>25</mapping>
|
||||
<button>40</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>12</mapping>
|
||||
<button>11</button>
|
||||
<mapping>23</mapping>
|
||||
<button>41</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>10</mapping>
|
||||
<button>4</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>22</mapping>
|
||||
<button>47</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>9</mapping>
|
||||
<button>6</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>21</mapping>
|
||||
<button>38</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>8</mapping>
|
||||
<button>43</button>
|
||||
|
@ -60,21 +64,21 @@
|
|||
<button>3</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>3</mapping>
|
||||
<button>2</button>
|
||||
<mapping>25</mapping>
|
||||
<button>40</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>13</mapping>
|
||||
<button>12</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>14</mapping>
|
||||
<button>13</button>
|
||||
<mapping>12</mapping>
|
||||
<button>11</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>1</mapping>
|
||||
<button>0</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>14</mapping>
|
||||
<button>13</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>15</mapping>
|
||||
<button>14</button>
|
||||
|
@ -87,6 +91,10 @@
|
|||
<mapping>16</mapping>
|
||||
<button>7</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>3</mapping>
|
||||
<button>2</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>17</mapping>
|
||||
<button>8</button>
|
||||
|
@ -104,16 +112,8 @@
|
|||
<button>44</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>21</mapping>
|
||||
<button>38</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>22</mapping>
|
||||
<button>47</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>23</mapping>
|
||||
<button>41</button>
|
||||
<mapping>24</mapping>
|
||||
<button>46</button>
|
||||
</entry>
|
||||
</mappings>
|
||||
</controller>
|
|
@ -20,25 +20,29 @@
|
|||
</trigger>
|
||||
<mappings>
|
||||
<entry>
|
||||
<mapping>24</mapping>
|
||||
<button>46</button>
|
||||
<mapping>13</mapping>
|
||||
<button>12</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>25</mapping>
|
||||
<button>40</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>12</mapping>
|
||||
<button>11</button>
|
||||
<mapping>23</mapping>
|
||||
<button>41</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>10</mapping>
|
||||
<button>4</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>22</mapping>
|
||||
<button>47</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>9</mapping>
|
||||
<button>6</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>21</mapping>
|
||||
<button>38</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>8</mapping>
|
||||
<button>43</button>
|
||||
|
@ -60,21 +64,21 @@
|
|||
<button>3</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>3</mapping>
|
||||
<button>2</button>
|
||||
<mapping>25</mapping>
|
||||
<button>40</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>13</mapping>
|
||||
<button>12</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>14</mapping>
|
||||
<button>13</button>
|
||||
<mapping>12</mapping>
|
||||
<button>11</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>1</mapping>
|
||||
<button>0</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>14</mapping>
|
||||
<button>13</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>15</mapping>
|
||||
<button>14</button>
|
||||
|
@ -87,6 +91,10 @@
|
|||
<mapping>16</mapping>
|
||||
<button>7</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>3</mapping>
|
||||
<button>2</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>17</mapping>
|
||||
<button>8</button>
|
||||
|
@ -104,16 +112,8 @@
|
|||
<button>44</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>21</mapping>
|
||||
<button>38</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>22</mapping>
|
||||
<button>47</button>
|
||||
</entry>
|
||||
<entry>
|
||||
<mapping>23</mapping>
|
||||
<button>41</button>
|
||||
<mapping>24</mapping>
|
||||
<button>46</button>
|
||||
</entry>
|
||||
</mappings>
|
||||
</controller>
|
|
@ -94,9 +94,9 @@
|
|||
<TVVolume>100</TVVolume>
|
||||
<PadVolume>100</PadVolume>
|
||||
<InputVolume>100</InputVolume>
|
||||
<TVDevice>alsa_output.pci-0000_04_00.5-platform-acp5x_mach.0.HiFi__hw_acp5x_1__sink</TVDevice>
|
||||
<PadDevice>alsa_output.pci-0000_04_00.5-platform-acp5x_mach.0.HiFi__hw_acp5x_1__sink</PadDevice>
|
||||
<InputDevice>filter-chain-source</InputDevice>
|
||||
<TVDevice>default</TVDevice>
|
||||
<PadDevice>default</PadDevice>
|
||||
<InputDevice>default</InputDevice>
|
||||
</Audio>
|
||||
<Account>
|
||||
<PersistentId>2147483649</PersistentId>
|
|
@ -42,12 +42,17 @@ Threads = True
|
|||
[General]
|
||||
ISOPath0 = RETRODECKHOMEDIR/roms/wii
|
||||
ISOPath1 = RETRODECKHOMEDIR/roms/gc
|
||||
ISOPaths = 3
|
||||
ISOPaths = 2
|
||||
WiiSDCardPath = RETRODECKHOMEDIR/saves/wii/dolphin/sd.raw
|
||||
WirelessMac = 00:17:ab:83:9b:d4
|
||||
HotkeysRequireFocus = True
|
||||
RecursiveISOPaths = True
|
||||
ISOPath2 = RETRODECKHOMEDIR/roms/wii
|
||||
DumpPath = /var/data/dolphin-emu/Dump/
|
||||
LoadPath = /var/data/dolphin-emu/Load/
|
||||
NANDRootPath = /var/data/dolphin-emu/Wii/
|
||||
ResourcePackPath = /var/data/dolphin-emu/ResourcePacks/
|
||||
WFSPath =
|
||||
WiiSDCardSyncFolder = /var/data/dolphin-emu/Load/WiiSDSync/
|
||||
[NetPlay]
|
||||
TraversalChoice = direct
|
||||
[BluetoothPassthrough]
|
|
@ -7,7 +7,7 @@ SyncToHostRefreshRate = false
|
|||
IncreaseTimerResolution = true
|
||||
InhibitScreensaver = true
|
||||
StartPaused = false
|
||||
StartFullscreen = false
|
||||
StartFullscreen = true
|
||||
PauseOnFocusLoss = true
|
||||
PauseOnMenu = true
|
||||
SaveStateOnExit = false
|
|
@ -68,7 +68,7 @@ else
|
|||
# Check if the .doom file exists
|
||||
if [[ ! -e "$doom_file" ]]; then
|
||||
log e "doom file not found in \"$doom_file\""
|
||||
zenity --error --no-wrap \
|
||||
rd_zenity --error --no-wrap \
|
||||
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
|
||||
--title "RetroDECK" \
|
||||
--text="File \"$doom_file\" not found. Quitting."
|
||||
|
@ -85,7 +85,7 @@ else
|
|||
# If the file is not found, exit with an error
|
||||
if [[ -z "$found_file" ]]; then
|
||||
log "[ERROR] File not found in \"$line\""
|
||||
zenity --error --no-wrap \
|
||||
rd_zenity --error --no-wrap \
|
||||
--window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
|
||||
--title "RetroDECK" \
|
||||
--text="File \"$doom_file\" not found. Quitting."
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue