83 lines
2.3 KiB
Bash
Executable File
83 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
|
# Steuerpanel: bleibt offen, bis das Fenster geschlossen wird.
|
|
DIR="/home/arbeit/projects/project-starter"
|
|
ARBEIT="$HOME/arbeit"
|
|
TICKET_NR=""
|
|
REF=""
|
|
|
|
CLAUDE_PROMPT_TPL="Verschaff dir kurz Projekt-Ueberblick (ddev, shopware 6). Lies dann /tmp/redmine-%s/data.json (enthaelt Redmine Issue + Briefing-Wiki) sowie ggf. Bilder unter /tmp/redmine-%s/. Liste die fuer das Ticket noetigen Features als knappe Bullet-Liste auf - vollstaendig, nichts weglassen, aber auch nicht aufgeblaeht. Simpel und kurz."
|
|
|
|
# Referenzprojekte = ddev-Projekte direkt unter ~/arbeit
|
|
mapfile -t REF_NAMES < <(find "$ARBEIT" -maxdepth 2 -name .ddev -type d -printf '%h\n' \
|
|
| sed "s|^$ARBEIT/||" | sort)
|
|
|
|
# Combo-Werte, ausgewaehlter Eintrag zuerst (yad nimmt den ersten als Vorauswahl)
|
|
combo_werte() {
|
|
local sel="$1" out="" n
|
|
[ -n "$sel" ] && out="$sel"
|
|
for n in "${REF_NAMES[@]}"; do
|
|
[ "$n" = "$sel" ] && continue
|
|
out="${out:+$out!}$n"
|
|
done
|
|
printf '%s' "$out"
|
|
}
|
|
|
|
im_terminal() {
|
|
gnome-terminal -- bash -c "$1"' ; echo; read -rp "Enter zum Schliessen "'
|
|
}
|
|
|
|
fehler() {
|
|
yad --error --title="Projekt Panel" --text="$1" --button="OK:0" --width=300
|
|
}
|
|
|
|
SEP=$'\x1f'
|
|
while true; do
|
|
RESULT=$(yad --form \
|
|
--title="Projekt Panel" \
|
|
--separator="$SEP" \
|
|
--field="Ticket-Nr" "$TICKET_NR" \
|
|
--field="Referenzprojekt:CB" "$(combo_werte "$REF")" \
|
|
--width=520 \
|
|
--button="Ticketdaten abrufen:2" \
|
|
--button="Projekt setup:4" \
|
|
--button="Terminal starten:6")
|
|
RC=$?
|
|
|
|
case "$RC" in
|
|
2|4|6) ;;
|
|
*) exit 0 ;;
|
|
esac
|
|
|
|
IFS="$SEP" read -r TICKET_NR REF _ <<< "$RESULT"
|
|
|
|
if [ -z "$TICKET_NR" ]; then
|
|
fehler "Ticket-Nr fehlt."
|
|
continue
|
|
fi
|
|
|
|
REF_PFAD="$ARBEIT/$REF"
|
|
ZIEL="$ARBEIT/tickets/$TICKET_NR"
|
|
|
|
case "$RC" in
|
|
2)
|
|
im_terminal "'$DIR/ticket-daten' '$TICKET_NR'"
|
|
;;
|
|
4)
|
|
if [ ! -d "$REF_PFAD/.ddev" ]; then
|
|
fehler "Kein ddev-Projekt: $REF_PFAD"
|
|
continue
|
|
fi
|
|
im_terminal "'$DIR/ticket-setup' '$TICKET_NR' '$REF_PFAD'"
|
|
;;
|
|
6)
|
|
if [ ! -d "$ZIEL" ]; then
|
|
fehler "$ZIEL gibt es noch nicht. Erst Projekt setup."
|
|
continue
|
|
fi
|
|
PROMPT=$(printf "$CLAUDE_PROMPT_TPL" "$TICKET_NR" "$TICKET_NR")
|
|
gnome-terminal --working-directory="$ZIEL" -- \
|
|
bash -c 'claude "$1"; exec bash' _ "$PROMPT"
|
|
;;
|
|
esac
|
|
done
|