diff --git a/.gitea/workflows/update.yml b/.gitea/workflows/update.yml
index 75bc55f..8f748f6 100644
--- a/.gitea/workflows/update.yml
+++ b/.gitea/workflows/update.yml
@@ -18,7 +18,13 @@ jobs:
- name: Notwendige Abhängigkeiten installieren
shell: sh
run: |
- apk add --no-cache bash jq
+ apk add --no-cache bash jq git
+
+ - name: Repository klonen
+ run: |
+ git clone https://entwicklung.flurneuordnung-sachsen.de/AG_QGIS/Repository.git repo
+ cd repo
+ git checkout feature/release
- name: Payload dekodieren und anzeigen
run: |
@@ -50,7 +56,129 @@ jobs:
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
+ - name: XML-Datei bestimmen
+ id: xmlfile
+ run: |
+ case "${{ steps.payload.outputs.channel }}" in
+ stable) FILE="plugins.xml" ;;
+ 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
+
+ - name: Alten Plugin-Eintrag entfernen
+ run: |
+ cd repo
+ 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
+ run: |
+ cd repo
+ FILE="${{ steps.xmlfile.outputs.file }}"
+
+ 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 }}"
+
+ ENTRY=$(cat <
+ $DESCRIPTION
+ $AUTHOR
+ $EMAIL
+ $URL
+ $CHANGELOG
+
+ EOF
+ )
+
+ # Eintrag vor einfügen
+ sed -i "/<\/plugins>/i $ENTRY" "$FILE"
+
+ - name: Änderungen committen und pushen
+ run: |
+ cd repo
+ git config user.name "Release Bot"
+ git config user.email "release-bot@noreply.localhost"
+
+ 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