From 0b398b81797f4a2ad7975e33adecb58b3fdd4a87 Mon Sep 17 00:00:00 2001 From: Team3 Date: Mon, 18 May 2026 05:35:51 +0200 Subject: [PATCH] init --- .gitignore | 1 + doc/features.md | 25 ++++++++++++++++++++++ redmine-fetch | 48 +++++++++++++++++++++++++++++++++++++++++++ reset-projekt | 7 +++++++ start-beckhuis | 31 ++++++++++++++++++++++++++++ start-filtermueller | 30 +++++++++++++++++++++++++++ start-goldsilber | 31 ++++++++++++++++++++++++++++ start-kochmesser | 31 ++++++++++++++++++++++++++++ start-project-starter | 11 ++++++++++ start-projekt | 47 ++++++++++++++++++++++++++++++++++++++++++ start-rag-system | 27 ++++++++++++++++++++++++ sync.sh | 1 + 12 files changed, 290 insertions(+) create mode 100644 .gitignore create mode 100644 doc/features.md create mode 100755 redmine-fetch create mode 100755 reset-projekt create mode 100755 start-beckhuis create mode 100755 start-filtermueller create mode 100755 start-goldsilber create mode 100755 start-kochmesser create mode 100755 start-project-starter create mode 100755 start-projekt create mode 100755 start-rag-system create mode 100644 sync.sh diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c0bded5 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.redmine_api_key diff --git a/doc/features.md b/doc/features.md new file mode 100644 index 0000000..2fdd7dd --- /dev/null +++ b/doc/features.md @@ -0,0 +1,25 @@ +Applikation +- projektauswahl (titel und pfad) +- projekttitel +- startet skript (skript je projekt) + +Redmine API Daten +- daten vom ticket abrufen +- daten vom brefing abrufen (falls vorhanden) +- bilder abrufen (falls vorhanden) + +Filtermüller +- code +- terminal mit 3-4 tabs + +Goldsilber +- code +- terminal mit 3-4 tabs + +Backhuis +- code +- terminal mit 3-4 tabs + +Kochmesser +- code +- terminal mit 3-4 tabs \ No newline at end of file diff --git a/redmine-fetch b/redmine-fetch new file mode 100755 index 0000000..3c8b972 --- /dev/null +++ b/redmine-fetch @@ -0,0 +1,48 @@ +#!/bin/bash +# Usage: redmine-fetch +# stdout: Issue-JSON + Wiki-JSON (Newline-getrennt; Wiki = leer wenn nicht vorhanden) +# stderr: Hinweis auf Bilder-Speicherort (wenn Bilder vorhanden) +# Side effect: Bilder von Issue + Wiki nach /tmp/redmine-{nr}/ + +TICKET_NR="$1" +URL="https://servicecenter.mitho-media.de" +API_KEY=$(cat /home/arbeit/projects/project-starter/.redmine_api_key) +ATTACH_DIR="/tmp/redmine-$TICKET_NR" + +ISSUE_JSON=$(curl -s -H "X-Redmine-API-Key: $API_KEY" \ + "$URL/issues/$TICKET_NR.json?include=journals,attachments,relations") + +PROJECT_ID=$(echo "$ISSUE_JSON" | python3 -c "import sys,json;print(json.load(sys.stdin)['issue']['project']['id'])") +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 "") + +rm -rf "$ATTACH_DIR" +mkdir -p "$ATTACH_DIR" + +download_images() { + local json="$1" + [ -z "$json" ] && return + echo "$json" | python3 -c " +import sys, json +d = json.load(sys.stdin) +container = d.get('issue', d.get('wiki_page', {})) +for a in container.get('attachments', []): + if a.get('content_type', '').startswith('image/'): + print(a['content_url'] + '|' + a['filename']) +" | while IFS='|' read -r url filename; do + [ -n "$url" ] && curl -sf -H "X-Redmine-API-Key: $API_KEY" -o "$ATTACH_DIR/$filename" "$url" + done +} + +download_images "$ISSUE_JSON" +download_images "$WIKI_JSON" + +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" diff --git a/reset-projekt b/reset-projekt new file mode 100755 index 0000000..9db3c85 --- /dev/null +++ b/reset-projekt @@ -0,0 +1,7 @@ +#!/bin/bash +ddev poweroff 2>/dev/null +flatpak kill org.mozilla.firefox 2>/dev/null +killall -9 code gnome-terminal-server 2>/dev/null +while pgrep -x code > /dev/null; do sleep 0.1; done +while pgrep -x gnome-terminal-server > /dev/null; do sleep 0.1; done +while pgrep -x firefox > /dev/null; do sleep 0.1; done diff --git a/start-beckhuis b/start-beckhuis new file mode 100755 index 0000000..4e932f6 --- /dev/null +++ b/start-beckhuis @@ -0,0 +1,31 @@ +#!/bin/bash +PROJEKT="/home/arbeit/arbeit/BeckhuisSwag6" +TICKET_NR="$1" + +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'" +fi + +TICKET_TAB="" +[ -n "$TICKET_NR" ] && TICKET_TAB="--new-tab https://servicecenter.mitho-media.de/issues/$TICKET_NR" + +flatpak run org.mozilla.firefox \ + --new-tab "https://mail.google.com/mail" \ + --new-tab "https://docs.google.com/spreadsheets/d/1lCSVgTgKq7Q0df2RKtcBb7m5tVub41-fkA2GTL1dTpw/edit" \ + --new-tab "https://beckhuis-swag6.ddev.site/" \ + --new-tab "https://beckhuis-swag6.ddev.site/admin" \ + --new-tab "https://beckhuis-swag6.ddev.site:8026/" \ + --new-tab "https://beckhuis-swag6.ddev.site:9101" \ + $TICKET_TAB & + +code "$PROJEKT" & + +gnome-terminal --full-screen -- bash -c "$(cat < "/tmp/redmine-$TICKET_NR/data.json" +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 new file mode 100755 index 0000000..188e76d --- /dev/null +++ b/start-rag-system @@ -0,0 +1,27 @@ +#!/bin/bash +PROJEKT="/home/arbeit/arbeit/MtoRagSystem" +TICKET_NR="$1" + +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'" +fi + +TICKET_TAB="" +[ -n "$TICKET_NR" ] && TICKET_TAB="--new-tab https://servicecenter.mitho-media.de/issues/$TICKET_NR" + +flatpak run org.mozilla.firefox \ + --new-tab "https://mail.google.com/mail" \ + --new-tab "https://docs.google.com/spreadsheets/d/1lCSVgTgKq7Q0df2RKtcBb7m5tVub41-fkA2GTL1dTpw/edit" \ + $TICKET_TAB & + +code "$PROJEKT" & + +gnome-terminal --full-screen -- bash -c "$(cat <