74 lines
2.3 KiB
Bash
Executable File
74 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"
|
|
)
|
|
# ===================================================================
|
|
|
|
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"
|