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}}
+