From 6cbf1a1dd38885a77e22b52152ae6e664a7a2955 Mon Sep 17 00:00:00 2001 From: team3 Date: Thu, 21 May 2026 19:53:43 +0200 Subject: [PATCH] update --- redmine-fetch | 37 +++++++++++++++++++++++++++++++------ start-beckhuis | 4 ++++ start-filtermueller | 4 ++++ start-goldsilber | 4 ++++ start-kochmesser | 4 ++++ start-management | 4 ++++ start-project-starter | 4 ++++ start-projekt | 30 ++++++++++++++++++------------ start-rag-system | 4 ++++ start-redmine-ki | 4 ++++ 10 files changed, 81 insertions(+), 18 deletions(-) diff --git a/redmine-fetch b/redmine-fetch index 3c8b972..050d06e 100755 --- a/redmine-fetch +++ b/redmine-fetch @@ -1,8 +1,9 @@ #!/bin/bash # Usage: redmine-fetch -# stdout: Issue-JSON + Wiki-JSON (Newline-getrennt; Wiki = leer wenn nicht vorhanden) +# stdout: Issue-JSON + alle Wiki-JSONs deren Titel mit # beginnt +# (Newline-getrennt; Wikis = nichts wenn keine Treffer) # stderr: Hinweis auf Bilder-Speicherort (wenn Bilder vorhanden) -# Side effect: Bilder von Issue + Wiki nach /tmp/redmine-{nr}/ +# Side effect: Bilder von Issue + Wikis nach /tmp/redmine-{nr}/ TICKET_NR="$1" URL="https://servicecenter.mitho-media.de" @@ -17,8 +18,21 @@ PROJECT_IDENTIFIER=$(curl -s -H "X-Redmine-API-Key: $API_KEY" \ "$URL/projects/$PROJECT_ID.json" \ | python3 -c "import sys,json;print(json.load(sys.stdin)['project']['identifier'])") -WIKI_JSON=$(curl -sf -H "X-Redmine-API-Key: $API_KEY" \ - "$URL/projects/$PROJECT_IDENTIFIER/wiki/%23$TICKET_NR.json?include=attachments" || echo "") +WIKI_INDEX=$(curl -sf -H "X-Redmine-API-Key: $API_KEY" \ + "$URL/projects/$PROJECT_IDENTIFIER/wiki/index.json" || echo "") + +WIKI_TITLES=$(echo "$WIKI_INDEX" | TICKET_NR="$TICKET_NR" python3 -c " +import sys, json, os +try: + pages = json.load(sys.stdin).get('wiki_pages', []) +except Exception: + sys.exit(0) +prefix = '#' + os.environ['TICKET_NR'] +for p in pages: + t = p.get('title', '') + if t == prefix or t.startswith(prefix + '_'): + print(t) +") rm -rf "$ATTACH_DIR" mkdir -p "$ATTACH_DIR" @@ -39,10 +53,21 @@ for a in container.get('attachments', []): } download_images "$ISSUE_JSON" -download_images "$WIKI_JSON" + +WIKI_OUTPUT="" +while IFS= read -r title; do + [ -z "$title" ] && continue + encoded=$(python3 -c "import urllib.parse,sys;print(urllib.parse.quote(sys.argv[1], safe=''))" "$title") + wiki=$(curl -sf -H "X-Redmine-API-Key: $API_KEY" \ + "$URL/projects/$PROJECT_IDENTIFIER/wiki/$encoded.json?include=attachments" || echo "") + if [ -n "$wiki" ]; then + download_images "$wiki" + WIKI_OUTPUT="${WIKI_OUTPUT}${wiki}"$'\n' + fi +done <<< "$WIKI_TITLES" COUNT=$(find "$ATTACH_DIR" -maxdepth 1 -type f 2>/dev/null | wc -l) [ "$COUNT" -gt 0 ] && echo "$COUNT Bild(er) gespeichert in $ATTACH_DIR" >&2 echo "$ISSUE_JSON" -echo "$WIKI_JSON" +printf '%s' "$WIKI_OUTPUT" diff --git a/start-beckhuis b/start-beckhuis index f1f4771..f0755e9 100755 --- a/start-beckhuis +++ b/start-beckhuis @@ -7,6 +7,10 @@ if [ -d "$DOC" ]; then sudo mount --bind "$DOC" "$PROJEKT/doc" fi +if [ -s /tmp/projekt-info.txt ]; then + cp /tmp/projekt-info.txt "$PROJEKT/CLAUDE.md" +fi + TAB_TICKET="" if [ -n "$TICKET_NR" ]; then TAB_TICKET="gnome-terminal --tab --working-directory='$PROJEKT' -- bash -c 'claude \"Verschaff dir kurz Projekt-Überblick (ddev, shopware 6.6). Lies dann /tmp/redmine-$TICKET_NR/data.json (enthält Redmine Issue + Briefing-Wiki) sowie ggf. Bilder unter /tmp/redmine-$TICKET_NR/. Liste die für das Ticket nötigen Features als knappe Bullet-Liste auf - vollständig, nichts weglassen, aber auch nicht aufgebläht. Simpel und kurz.\"; exec bash'" diff --git a/start-filtermueller b/start-filtermueller index 070fd02..c9bd602 100755 --- a/start-filtermueller +++ b/start-filtermueller @@ -7,6 +7,10 @@ if [ -d "$DOC" ]; then sudo mount --bind "$DOC" "$PROJEKT/doc" fi +if [ -s /tmp/projekt-info.txt ]; then + cp /tmp/projekt-info.txt "$PROJEKT/CLAUDE.md" +fi + TAB_TICKET="" if [ -n "$TICKET_NR" ]; then TAB_TICKET="gnome-terminal --tab --working-directory='$PROJEKT' -- bash -c 'claude \"Verschaff dir kurz Projekt-Überblick (ddev, shopware 6.6). Lies dann /tmp/redmine-$TICKET_NR/data.json (enthält Redmine Issue + Briefing-Wiki) sowie ggf. Bilder unter /tmp/redmine-$TICKET_NR/. Liste die für das Ticket nötigen Features als knappe Bullet-Liste auf - vollständig, nichts weglassen, aber auch nicht aufgebläht. Simpel und kurz.\"; exec bash'" diff --git a/start-goldsilber b/start-goldsilber index f9bcfb5..c3efcfa 100755 --- a/start-goldsilber +++ b/start-goldsilber @@ -7,6 +7,10 @@ if [ -d "$DOC" ]; then sudo mount --bind "$DOC" "$PROJEKT/doc" fi +if [ -s /tmp/projekt-info.txt ]; then + cp /tmp/projekt-info.txt "$PROJEKT/CLAUDE.md" +fi + TAB_TICKET="" if [ -n "$TICKET_NR" ]; then TAB_TICKET="gnome-terminal --tab --working-directory='$PROJEKT' -- bash -c 'claude \"Verschaff dir kurz Projekt-Überblick (ddev, shopware 6.6). Lies dann /tmp/redmine-$TICKET_NR/data.json (enthält Redmine Issue + Briefing-Wiki) sowie ggf. Bilder unter /tmp/redmine-$TICKET_NR/. Liste die für das Ticket nötigen Features als knappe Bullet-Liste auf - vollständig, nichts weglassen, aber auch nicht aufgebläht. Simpel und kurz.\"; exec bash'" diff --git a/start-kochmesser b/start-kochmesser index 5eb9143..d81dc28 100755 --- a/start-kochmesser +++ b/start-kochmesser @@ -7,6 +7,10 @@ if [ -d "$DOC" ]; then sudo mount --bind "$DOC" "$PROJEKT/doc" fi +if [ -s /tmp/projekt-info.txt ]; then + cp /tmp/projekt-info.txt "$PROJEKT/CLAUDE.md" +fi + TAB_TICKET="" if [ -n "$TICKET_NR" ]; then TAB_TICKET="gnome-terminal --tab --working-directory='$PROJEKT' -- bash -c 'claude \"Verschaff dir kurz Projekt-Überblick (ddev, shopware 6.6). Lies dann /tmp/redmine-$TICKET_NR/data.json (enthält Redmine Issue + Briefing-Wiki) sowie ggf. Bilder unter /tmp/redmine-$TICKET_NR/. Liste die für das Ticket nötigen Features als knappe Bullet-Liste auf - vollständig, nichts weglassen, aber auch nicht aufgebläht. Simpel und kurz.\"; exec bash'" diff --git a/start-management b/start-management index 3f60397..095a1fc 100755 --- a/start-management +++ b/start-management @@ -6,6 +6,10 @@ if [ -d "$DOC" ]; then sudo mount --bind "$DOC" "$PROJEKT/doc" fi +if [ -s /tmp/projekt-info.txt ]; then + cp /tmp/projekt-info.txt "$PROJEKT/CLAUDE.md" +fi + code "$PROJEKT" & gnome-terminal -- bash -c "$(cat < "/tmp/redmine-$TICKET_NR/data.json" fi +INFO_FILE="/tmp/projekt-info.txt" +rm -f "$INFO_FILE" +if [ -n "$INFO_ESCAPED" ]; then + printf '%b' "$INFO_ESCAPED" > "$INFO_FILE" +fi + /home/arbeit/projects/project-starter/reset-projekt exec "/home/arbeit/projects/project-starter/$SKRIPT" "$TICKET_NR" diff --git a/start-rag-system b/start-rag-system index aa6ca71..aa7e083 100755 --- a/start-rag-system +++ b/start-rag-system @@ -7,6 +7,10 @@ if [ -d "$DOC" ]; then sudo mount --bind "$DOC" "$PROJEKT/doc" fi +if [ -s /tmp/projekt-info.txt ]; then + cp /tmp/projekt-info.txt "$PROJEKT/CLAUDE.md" +fi + TAB_TICKET="" if [ -n "$TICKET_NR" ]; then TAB_TICKET="gnome-terminal --tab --working-directory='$PROJEKT' -- bash -c 'claude \"Verschaff dir kurz Projekt-Überblick (ddev, shopware 6.6). Lies dann /tmp/redmine-$TICKET_NR/data.json (enthält Redmine Issue + Briefing-Wiki) sowie ggf. Bilder unter /tmp/redmine-$TICKET_NR/. Liste die für das Ticket nötigen Features als knappe Bullet-Liste auf - vollständig, nichts weglassen, aber auch nicht aufgebläht. Simpel und kurz.\"; exec bash'" diff --git a/start-redmine-ki b/start-redmine-ki index bf88a63..21c52e7 100755 --- a/start-redmine-ki +++ b/start-redmine-ki @@ -6,6 +6,10 @@ if [ -d "$DOC" ]; then sudo mount --bind "$DOC" "$PROJEKT/doc" fi +if [ -s /tmp/projekt-info.txt ]; then + cp /tmp/projekt-info.txt "$PROJEKT/CLAUDE.md" +fi + code "$PROJEKT" & gnome-terminal -- bash -c "$(cat <