Files
project-starter/start-projekt
2026-06-10 22:19:49 +02:00

75 lines
2.3 KiB
Bash
Executable File

#!/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"
"Creator" "start-creator"
)
# ===================================================================
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"