init
This commit is contained in:
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.redmine_api_key
|
||||
25
doc/features.md
Normal file
25
doc/features.md
Normal file
@@ -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
|
||||
48
redmine-fetch
Executable file
48
redmine-fetch
Executable file
@@ -0,0 +1,48 @@
|
||||
#!/bin/bash
|
||||
# Usage: redmine-fetch <ticket-nr>
|
||||
# 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"
|
||||
7
reset-projekt
Executable file
7
reset-projekt
Executable file
@@ -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
|
||||
31
start-beckhuis
Executable file
31
start-beckhuis
Executable file
@@ -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 <<EOF
|
||||
gnome-terminal --tab --working-directory='$PROJEKT' -- bash -c 'git fetch --all; git adog; exec bash'
|
||||
$TAB_TICKET
|
||||
gnome-terminal --tab --working-directory='$PROJEKT' -- bash -c 'claude "Verschaff dir eine Übersicht, ddev, shopware 6.6"; exec bash'
|
||||
gnome-terminal --tab --working-directory='$PROJEKT' -- bash -c 'ddev start; exec bash'
|
||||
EOF
|
||||
)"
|
||||
|
||||
30
start-filtermueller
Executable file
30
start-filtermueller
Executable file
@@ -0,0 +1,30 @@
|
||||
#!/bin/bash
|
||||
PROJEKT="/home/arbeit/arbeit/filter-mueller.de"
|
||||
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://filter-mueller.dev.mitho-media.de/" \
|
||||
--new-tab "https://filter-mueller.dev.mitho-media.de/admin" \
|
||||
--new-tab "https://filter-mueller.dev.mitho-media.de:8026/" \
|
||||
--new-tab "https://filter-mueller.dev.mitho-media.de:9101" \
|
||||
$TICKET_TAB &
|
||||
|
||||
code "$PROJEKT" &
|
||||
|
||||
gnome-terminal --full-screen -- bash -c "$(cat <<EOF
|
||||
gnome-terminal --tab --working-directory='$PROJEKT' -- bash -c 'git fetch --all; git adog; exec bash'
|
||||
$TAB_TICKET
|
||||
gnome-terminal --tab --working-directory='$PROJEKT' -- bash -c 'claude "Verschaff dir eine Übersicht, ddev, shopware 6.6"; exec bash'
|
||||
gnome-terminal --tab --working-directory='$PROJEKT' -- bash -c 'ddev start; exec bash'
|
||||
EOF
|
||||
)"
|
||||
31
start-goldsilber
Executable file
31
start-goldsilber
Executable file
@@ -0,0 +1,31 @@
|
||||
#!/bin/bash
|
||||
PROJEKT="/home/arbeit/arbeit/GSS6"
|
||||
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://gss6.ddev.site/" \
|
||||
--new-tab "https://gss6.ddev.site/admin" \
|
||||
--new-tab "https://gss6.ddev.site:8026/" \
|
||||
--new-tab "https://gss6.ddev.site:9101" \
|
||||
$TICKET_TAB &
|
||||
|
||||
code "$PROJEKT" &
|
||||
|
||||
gnome-terminal --full-screen -- bash -c "$(cat <<EOF
|
||||
gnome-terminal --tab --working-directory='$PROJEKT' -- bash -c 'git fetch --all; git adog; exec bash'
|
||||
$TAB_TICKET
|
||||
gnome-terminal --tab --working-directory='$PROJEKT' -- bash -c 'claude "Verschaff dir eine Übersicht, ddev, shopware 6.6"; exec bash'
|
||||
gnome-terminal --tab --working-directory='$PROJEKT' -- bash -c 'ddev start; exec bash'
|
||||
EOF
|
||||
)"
|
||||
|
||||
31
start-kochmesser
Executable file
31
start-kochmesser
Executable file
@@ -0,0 +1,31 @@
|
||||
#!/bin/bash
|
||||
PROJEKT="/home/arbeit/arbeit/kochmesser24.de"
|
||||
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://kochmesser24.ddev.site/" \
|
||||
--new-tab "https://kochmesser24.ddev.site/admin" \
|
||||
--new-tab "https://kochmesser24.ddev.site:8026/" \
|
||||
--new-tab "https://kochmesser24.ddev.site:9101" \
|
||||
$TICKET_TAB &
|
||||
|
||||
code "$PROJEKT" &
|
||||
|
||||
gnome-terminal --full-screen -- bash -c "$(cat <<EOF
|
||||
gnome-terminal --tab --working-directory='$PROJEKT' -- bash -c 'git fetch --all; git adog; exec bash'
|
||||
$TAB_TICKET
|
||||
gnome-terminal --tab --working-directory='$PROJEKT' -- bash -c 'claude "Verschaff dir eine Übersicht, ddev, shopware 6.6"; exec bash'
|
||||
gnome-terminal --tab --working-directory='$PROJEKT' -- bash -c 'ddev start; exec bash'
|
||||
EOF
|
||||
)"
|
||||
|
||||
11
start-project-starter
Executable file
11
start-project-starter
Executable file
@@ -0,0 +1,11 @@
|
||||
#!/bin/bash
|
||||
PROJEKT="/home/arbeit/projects/project-starter"
|
||||
|
||||
code "$PROJEKT" &
|
||||
|
||||
gnome-terminal --full-screen -- bash -c "$(cat <<EOF
|
||||
gnome-terminal --tab --working-directory='$PROJEKT' -- bash -c 'git adog; exec bash'
|
||||
gnome-terminal --tab --working-directory='$PROJEKT' -- bash -c 'claude "Verschaff dir eine Übersicht, bash skripte"; exec bash'
|
||||
gnome-terminal --tab --working-directory='$PROJEKT' -- bash -c 'ddev start; exec bash'
|
||||
EOF
|
||||
)"
|
||||
47
start-projekt
Executable file
47
start-projekt
Executable file
@@ -0,0 +1,47 @@
|
||||
#!/bin/bash
|
||||
|
||||
# === Projekte hier pflegen: "Anzeigename" "skriptname" pro Zeile ===
|
||||
PROJEKTE=(
|
||||
"Filter Müller" "start-filtermueller"
|
||||
"Beckhuis" "start-beckhuis"
|
||||
"Goldsilber" "start-goldsilber"
|
||||
"Kochmesser" "start-kochmesser"
|
||||
"Project-Starter" "start-project-starter"
|
||||
"MtoRagSystem" "start-rag-system"
|
||||
)
|
||||
# ===================================================================
|
||||
|
||||
declare -A PROJEKT_MAP
|
||||
COMBO_VALUES=""
|
||||
for ((i=0; i<${#PROJEKTE[@]}; i+=2)); do
|
||||
PROJEKT_MAP["${PROJEKTE[i]}"]="${PROJEKTE[i+1]}"
|
||||
COMBO_VALUES="${COMBO_VALUES}${PROJEKTE[i]}|"
|
||||
done
|
||||
COMBO_VALUES="${COMBO_VALUES%|}"
|
||||
|
||||
RESULT=$(zenity --forms \
|
||||
--title="Projekt starten" \
|
||||
--text="VS Code und alle Terminals werden geschlossen und neu gestartet." \
|
||||
--separator="|" \
|
||||
--add-combo="Projekt" --combo-values="$COMBO_VALUES" \
|
||||
--add-entry="Ticket-Nr (optional)" \
|
||||
--width=400 \
|
||||
--ok-label="Starten" \
|
||||
--cancel-label="Abbrechen")
|
||||
|
||||
[ -z "$RESULT" ] && exit 0
|
||||
|
||||
PROJEKT_NAME="${RESULT%%|*}"
|
||||
TICKET_NR="${RESULT##*|}"
|
||||
SKRIPT="${PROJEKT_MAP[$PROJEKT_NAME]}"
|
||||
|
||||
[ -z "$SKRIPT" ] && exit 0
|
||||
|
||||
if [ -n "$TICKET_NR" ]; then
|
||||
REDMINE_DATA=$(~/bin/redmine-fetch "$TICKET_NR")
|
||||
echo "$REDMINE_DATA" > "/tmp/redmine-$TICKET_NR/data.json"
|
||||
fi
|
||||
|
||||
/home/arbeit/projects/project-starter/reset-projekt
|
||||
|
||||
exec "/home/arbeit/projects/project-starter/$SKRIPT" "$TICKET_NR"
|
||||
27
start-rag-system
Executable file
27
start-rag-system
Executable file
@@ -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 <<EOF
|
||||
gnome-terminal --tab --working-directory='$PROJEKT' -- bash -c 'git fetch --all; git adog; exec bash'
|
||||
$TAB_TICKET
|
||||
gnome-terminal --tab --working-directory='$PROJEKT' -- bash -c 'claude "Verschaff dir eine Übersicht, ddev, shopware 6.6"; exec bash'
|
||||
gnome-terminal --tab --working-directory='$PROJEKT' -- bash -c 'ddev start; exec bash'
|
||||
EOF
|
||||
)"
|
||||
|
||||
Reference in New Issue
Block a user