diff --git a/start-projekt b/start-projekt index e8df0cb..13f151a 100755 --- a/start-projekt +++ b/start-projekt @@ -32,21 +32,26 @@ COMBO_VALUES="${COMBO_VALUES%!}" SEP=$'\x1f' RESULT=$(yad --form \ --title="Projekt starten" \ - --text="VS Code und alle Terminals werden geschlossen und neu gestartet." \ + --text="Auswählen, was beendet und was neu gestartet wird." \ --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 \ + --field="Firefox starten:CHK" TRUE \ + --field="VS Code starten:CHK" TRUE \ + --field="Terminals starten:CHK" TRUE \ + --field="Obsidian starten:CHK" TRUE \ + --field="Firefox beenden:CHK" FALSE \ + --field="VS Code beenden:CHK" FALSE \ + --field="Terminals beenden:CHK" FALSE \ + --field="Obsidian beenden:CHK" FALSE \ + --width=600 --height=620 \ --button="Abbrechen:1" --button="Starten:0") [ -z "$RESULT" ] && exit 0 IFS="$SEP" read -r -d '' PROJEKT_NAME TICKET_NR INFO_ESCAPED \ + START_FF START_CODE START_TERM START_OBS \ CHK_FF CHK_CODE CHK_TERM CHK_OBS _ <<< "$RESULT" SKRIPT="${PROJEKT_MAP[$PROJEKT_NAME]}" @@ -71,4 +76,19 @@ KILL=() /home/arbeit/projects/project-starter/reset-projekt "${KILL[@]}" +# Nicht gewaehlte Programme per PATH-Stub abschalten, statt in jedem +# start- einzeln abzufragen. +STUB_DIR="/tmp/projekt-stubs" +rm -rf "$STUB_DIR" +mkdir -p "$STUB_DIR" +stub() { + printf '#!/bin/bash\nexit 0\n' > "$STUB_DIR/$1" + chmod +x "$STUB_DIR/$1" +} +[ "$START_FF" = "TRUE" ] || stub firefox +[ "$START_CODE" = "TRUE" ] || stub code +[ "$START_TERM" = "TRUE" ] || stub gnome-terminal +[ "$START_OBS" = "TRUE" ] || stub obsidian +export PATH="$STUB_DIR:$PATH" + exec "/home/arbeit/projects/project-starter/$SKRIPT" "$TICKET_NR"