#!/bin/bash # === Projekte hier pflegen: "Anzeigename" "skriptname" pro Zeile === PROJEKTE=( "Filter Müller" "start-filtermueller" "Beckhuis" "start-beckhuis" "Goldsilber" "start-goldsilber" "Kochmesser" "start-kochmesser" "Milku" "start-milku" "Project-Starter" "start-project-starter" "RagSystem" "start-rag-system" "PriceService" "start-price-service" "Kasse" "start-kasse" "Redmine Ki" "start-redmine-ki" "Management" "start-management" "Mmo" "start-mmo" "KI Shop" "start-ki-shop" "Guide" "start-guides" "OnePager" "start-one-pager" ) # =================================================================== 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%!}" SEP=$'\x1f' RESULT=$(yad --form \ --title="Projekt starten" \ --text="VS Code und alle Terminals werden geschlossen und neu gestartet." \ --separator="$SEP" \ --field="Projekt:CB" "$COMBO_VALUES" \ --field="Ticket-Nr (optional)" "" \ --field="Zusatzinfo an Claude:TXT" "" \ --field="Firefox beenden:CHK" TRUE \ --field="VS Code beenden:CHK" TRUE \ --field="Terminals beenden:CHK" TRUE \ --field="Obsidian beenden:CHK" TRUE \ --width=600 --height=500 \ --button="Abbrechen:1" --button="Starten:0") [ -z "$RESULT" ] && exit 0 IFS="$SEP" read -r -d '' PROJEKT_NAME TICKET_NR INFO_ESCAPED \ CHK_FF CHK_CODE CHK_TERM CHK_OBS _ <<< "$RESULT" SKRIPT="${PROJEKT_MAP[$PROJEKT_NAME]}" [ -z "$SKRIPT" ] && exit 0 if [ -n "$TICKET_NR" ]; then REDMINE_DATA=$(/home/arbeit/projects/project-starter/redmine-fetch "$TICKET_NR") echo "$REDMINE_DATA" > "/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 KILL=() [ "$CHK_FF" = "TRUE" ] && KILL+=("firefox") [ "$CHK_CODE" = "TRUE" ] && KILL+=("code") [ "$CHK_TERM" = "TRUE" ] && KILL+=("gnome-terminal-server") [ "$CHK_OBS" = "TRUE" ] && KILL+=("obsidian") /home/arbeit/projects/project-starter/reset-projekt "${KILL[@]}" exec "/home/arbeit/projects/project-starter/$SKRIPT" "$TICKET_NR"