From b882b85852599dc4985a95558b474af0737cf020 Mon Sep 17 00:00:00 2001 From: Michael Otto Date: Tue, 3 Mar 2026 10:30:04 +0100 Subject: [PATCH] Auf plugin.template umgestellt --- .gitea/workflows/update.yml | 124 ++++++------------------------------ templates/plugin.template | 7 ++ 2 files changed, 28 insertions(+), 103 deletions(-) create mode 100644 templates/plugin.template diff --git a/.gitea/workflows/update.yml b/.gitea/workflows/update.yml index 8f748f6..62ec78c 100644 --- a/.gitea/workflows/update.yml +++ b/.gitea/workflows/update.yml @@ -15,7 +15,7 @@ jobs: shell: bash steps: - - name: Notwendige Abhängigkeiten installieren + - name: Abhängigkeiten installieren shell: sh run: | apk add --no-cache bash jq git @@ -26,12 +26,7 @@ jobs: cd repo git checkout feature/release - - name: Payload dekodieren und anzeigen - run: | - echo "Dekodierter Payload:" - echo "${{ github.event.inputs.payload }}" | base64 -d - - - name: Payload als JSON einlesen + - name: Payload dekodieren id: payload run: | DECODED=$(echo "${{ github.event.inputs.payload }}" | base64 -d) @@ -45,17 +40,6 @@ jobs: echo "url=$(echo "$DECODED" | jq -r '.url')" >> $GITHUB_OUTPUT echo "changelog=$(echo "$DECODED" | jq -r '.changelog')" >> $GITHUB_OUTPUT - - name: Empfangene Daten ausgeben - run: | - echo "Plugin: ${{ steps.payload.outputs.plugin }}" - echo "Version: ${{ steps.payload.outputs.version }}" - echo "Kanal: ${{ steps.payload.outputs.channel }}" - echo "Beschreibung:${{ steps.payload.outputs.description }}" - echo "Autor: ${{ steps.payload.outputs.author }}" - echo "E-Mail: ${{ steps.payload.outputs.email }}" - echo "URL: ${{ steps.payload.outputs.url }}" - echo "Changelog: ${{ steps.payload.outputs.changelog }}" - - name: XML-Datei bestimmen id: xmlfile run: | @@ -64,15 +48,12 @@ jobs: testing) FILE="plugins-testing.xml" ;; unstable) FILE="plugins-unstable.xml" ;; esac - echo "file=$FILE" >> $GITHUB_OUTPUT - echo "Nutze Datei: $FILE" - name: XML-Datei initialisieren run: | cd repo FILE="${{ steps.xmlfile.outputs.file }}" - if [ ! -s "$FILE" ]; then echo "" > "$FILE" fi @@ -83,37 +64,34 @@ jobs: FILE="${{ steps.xmlfile.outputs.file }}" PLUGIN="${{ steps.payload.outputs.plugin }}" - # Entfernt den kompletten Plugin-Block sed -i "//d" "$FILE" - - name: Neuen Plugin-Eintrag einfügen + - name: Template anwenden und Eintrag einfügen run: | cd repo + FILE="${{ steps.xmlfile.outputs.file }}" + TEMPLATE="templates/plugin.template" - PLUGIN="${{ steps.payload.outputs.plugin }}" - VERSION="${{ steps.payload.outputs.version }}" - DESCRIPTION="${{ steps.payload.outputs.description }}" - AUTHOR="${{ steps.payload.outputs.author }}" - EMAIL="${{ steps.payload.outputs.email }}" - URL="${{ steps.payload.outputs.url }}" - CHANGELOG="${{ steps.payload.outputs.changelog }}" + # Template laden + ENTRY=$(cat "$TEMPLATE") - ENTRY=$(cat < - $DESCRIPTION - $AUTHOR - $EMAIL - $URL - $CHANGELOG - - EOF - ) + # Variablen ersetzen + ENTRY="${ENTRY//\{\{PLUGIN\}\}/${{ steps.payload.outputs.plugin }}}" + ENTRY="${ENTRY//\{\{VERSION\}\}/${{ steps.payload.outputs.version }}}" + ENTRY="${ENTRY//\{\{DESCRIPTION\}\}/${{ steps.payload.outputs.description }}}" + ENTRY="${ENTRY//\{\{AUTHOR\}\}/${{ steps.payload.outputs.author }}}" + ENTRY="${ENTRY//\{\{EMAIL\}\}/${{ steps.payload.outputs.email }}}" + ENTRY="${ENTRY//\{\{URL\}\}/${{ steps.payload.outputs.url }}}" + ENTRY="${ENTRY//\{\{CHANGELOG\}\}/${{ steps.payload.outputs.changelog }}}" - # Eintrag vor einfügen - sed -i "/<\/plugins>/i $ENTRY" "$FILE" + # ENTRY sicher in Datei einfügen + printf "%s\n" "$ENTRY" > new_entry.xml - - name: Änderungen committen und pushen + # Vor einfügen + sed -i "/<\/plugins>/e cat new_entry.xml" "$FILE" + + - name: Commit & Push run: | cd repo git config user.name "Release Bot" @@ -122,63 +100,3 @@ jobs: git add . git commit -m "Update ${{ steps.payload.outputs.plugin }} ${{ steps.payload.outputs.version }} (${{ steps.payload.outputs.channel }})" git push - - - - -# name: Update Plugin (Empfang) - -# on: -# workflow_dispatch: -# inputs: -# payload: -# description: 'Base64-kodierter JSON-Payload' -# required: true - -# jobs: -# update-plugin: -# runs-on: alpine-latest -# defaults: -# run: -# shell: bash - -# steps: -# - name: Notwendige Abhängigkeiten installieren -# shell: sh -# run: | -# apk add --no-cache bash jq - -# - name: Payload dekodieren und anzeigen -# run: | -# echo "Dekodierter Payload:" -# echo "${{ github.event.inputs.payload }}" | base64 -d - -# - name: Payload als JSON einlesen -# id: payload -# run: | -# DECODED=$(echo "${{ github.event.inputs.payload }}" | base64 -d) - -# echo "plugin=$(echo "$DECODED" | jq -r '.plugin')" >> $GITHUB_OUTPUT -# echo "version=$(echo "$DECODED" | jq -r '.version')" >> $GITHUB_OUTPUT -# echo "channel=$(echo "$DECODED" | jq -r '.channel')" >> $GITHUB_OUTPUT -# echo "description=$(echo "$DECODED" | jq -r '.description')" >> $GITHUB_OUTPUT -# echo "author=$(echo "$DECODED" | jq -r '.author')" >> $GITHUB_OUTPUT -# echo "email=$(echo "$DECODED" | jq -r '.email')" >> $GITHUB_OUTPUT -# echo "url=$(echo "$DECODED" | jq -r '.url')" >> $GITHUB_OUTPUT -# echo "changelog=$(echo "$DECODED" | jq -r '.changelog')" >> $GITHUB_OUTPUT - -# - name: Empfangene Daten ausgeben -# run: | -# echo "Plugin: ${{ steps.payload.outputs.plugin }}" -# echo "Version: ${{ steps.payload.outputs.version }}" -# echo "Kanal: ${{ steps.payload.outputs.channel }}" -# echo "Beschreibung:${{ steps.payload.outputs.description }}" -# echo "Autor: ${{ steps.payload.outputs.author }}" -# echo "E-Mail: ${{ steps.payload.outputs.email }}" -# echo "URL: ${{ steps.payload.outputs.url }}" -# echo "Changelog: ${{ steps.payload.outputs.changelog }}" - -# # Ab hier deine eigentliche Logik, z.B. Repository-Datei aktualisieren: -# # - name: plugins.json aktualisieren -# # run: | -# # ... \ No newline at end of file diff --git a/templates/plugin.template b/templates/plugin.template new file mode 100644 index 0000000..89ef2a2 --- /dev/null +++ b/templates/plugin.template @@ -0,0 +1,7 @@ + + {{DESCRIPTION}} + {{AUTHOR}} + {{EMAIL}} + {{URL}} + {{CHANGELOG}} +