diff --git a/setup_Projekt.desktop b/setup_Projekt.desktop index 3418463..d8746bb 100755 --- a/setup_Projekt.desktop +++ b/setup_Projekt.desktop @@ -3,9 +3,9 @@ Version=1.0 Type=Application Name=setup_Projekt Comment=Startet mein Bash-Skript im Terminal -Exec=bash -c "./setup_Projekt.sh; echo; echo 'Fertig - Drücke Enter zum Schließen'; read" +Exec=bash "./toolbox.sh" Icon=utilities-terminal -Terminal=true +Terminal=false Path=/home/christian/Projekte Categories=Application; StartupNotify=true diff --git a/setup_Projekt.sh b/setup_Projekt.sh index 158aefc..96274e6 100755 --- a/setup_Projekt.sh +++ b/setup_Projekt.sh @@ -1,64 +1,60 @@ #!/bin/bash -# --- Konfiguration --- -# Das Skript arbeitet in dem Ordner, in dem es gestartet wird. -ROOT_DIR=$(pwd) +# Das Skript arbeitet im aktuellen Ordner +ROOT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd) -echo "--- Projekt-Konfigurator ---" -read -p "Name des Projekts: " NAME +# 1. Name des Projekts abfragen +NAME=$(zenity --entry --title="Projekt-Konfigurator" --text="Name des Projekts:") +[ -z "$NAME" ] && exit 0 NAME_CLEAN=${NAME// /_} -echo -e "\nWelche Art von Projekt?" -echo "1) Hardware (3D-Druck/CNC)" -echo "2) Software (Python/Bash)" -read -p "Auswahl (1 oder 2): " TYPE +# 2. Art des Projekts wählen +TYPE=$(zenity --list --radiolist --title="Projekt-Typ" --column="" --column="Typ" \ + TRUE "Hardware (3D-Druck/CNC)" \ + FALSE "Software (Python/Bash)") +[ -z "$TYPE" ] && exit 0 -# Tags abfragen (wichtig für die spätere Indizierung) -echo -e "\nGib Schlagworte (Tags) für die Suche ein (z.B. Gehäuse Motor Werkzeug):" -read -p "Tags: " USER_TAGS +# 3. Tags abfragen +USER_TAGS=$(zenity --entry --title="Tags" --text="Gib Schlagworte ein (z.B. Motor Gehäuse):") -# Pfad-Logik und Ordner-Erstellung -if [ "$TYPE" == "1" ]; then +# Pfad-Logik +if [[ "$TYPE" == "Hardware"* ]]; then BASE_DIR="01_Hardware_Projekte/$NAME_CLEAN" - mkdir -p "$BASE_DIR"/{CAD,CAM,3D_Print,Dokumentation,Ressourcen} + mkdir -p "$ROOT_DIR/$BASE_DIR"/{CAD,CAM,3D_Print,Dokumentation,Ressourcen} CATEGORY="Hardware (3D-Druck/CNC)" -elif [ "$TYPE" == "2" ]; then - read -p "Sprache (Python/Bash): " LANG - if [[ "$LANG" =~ ^[Pp]ython$ ]]; then +else + LANG=$(zenity --list --radiolist --title="Sprache" --column="" --column="Sprache" \ + TRUE "Python" \ + FALSE "Bash") + [ -z "$LANG" ] && exit 0 + + if [ "$LANG" == "Python" ]; then BASE_DIR="02_Software_Scripts/Python/$NAME_CLEAN" - mkdir -p "$BASE_DIR"/{src,tests,docs} - touch "$BASE_DIR/src/main.py" + mkdir -p "$ROOT_DIR/$BASE_DIR"/{src,tests,docs} + touch "$ROOT_DIR/$BASE_DIR/src/main.py" CATEGORY="Software (Python)" else BASE_DIR="02_Software_Scripts/Bash/$NAME_CLEAN" - mkdir -p "$BASE_DIR" - touch "$BASE_DIR/$NAME_CLEAN.sh" - chmod +x "$BASE_DIR/$NAME_CLEAN.sh" + mkdir -p "$ROOT_DIR/$BASE_DIR" + touch "$ROOT_DIR/$BASE_DIR/$NAME_CLEAN.sh" + chmod +x "$ROOT_DIR/$BASE_DIR/$NAME_CLEAN.sh" CATEGORY="Software (Bash)" fi -else - echo "Ungültige Auswahl. Abbruch." - exit 1 fi -# Voller Pfad zum Zielordner +# README.md erstellen FINAL_PATH="$ROOT_DIR/$BASE_DIR" - -# README.md erstellen und befüllen { echo "# $NAME" echo "Kategorie: $CATEGORY" echo "Erstellt am: $(date +'%d.%m.%Y')" echo -e "\n## Tags zur Indizierung" for tag in $USER_TAGS; do - CLEAN_TAG=${tag/#/} # Entfernt evtl. vorhandene # um Dopplungen zu vermeiden + CLEAN_TAG=${tag/#/} echo -n "#$CLEAN_TAG " done echo -e "\n\n## Notizen" echo "- Hier Projektdetails eintragen..." } > "$FINAL_PATH/README.md" -echo -e "\n--------------------------------------------------" -echo "Projekt '$NAME_CLEAN' wurde erfolgreich erstellt!" -echo "Pfad: $BASE_DIR" -echo "Die README.md wurde mit deinen Tags indiziert." +zenity --info --title="Erfolg" --text="Projekt '$NAME_CLEAN' wurde erstellt!\n\nPfad: $BASE_DIR" \ No newline at end of file diff --git a/toolbox.sh b/toolbox.sh index a89f6af..8cc0c8b 100755 --- a/toolbox.sh +++ b/toolbox.sh @@ -1,11 +1,9 @@ #!/bin/bash -# Ermittelt das Verzeichnis, in dem dieses Skript liegt SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd) -# Relative Pfade zu den Modulen definieren -# WICHTIG: Prüfe, ob die Datei wirklich ".setup_Projekt.sh" heißt (mit Punkt!) -SCRIPT_SETUP="$SCRIPT_DIR/.setup_Projekt.sh" +# Pfade zu den Modulen +SCRIPT_SETUP="$SCRIPT_DIR/setup_Projekt.sh" SCRIPT_FIND="$SCRIPT_DIR/find.sh" while true; do @@ -13,17 +11,15 @@ while true; do --title="Christian's Projekt-Toolbox" \ --column="Aktion" --column="Beschreibung" \ --width=500 --height=350 \ - "1. Projekt erstellen" "Legt neue Hardware- oder Software-Ordner an" \ + "1. Projekt erstellen" "Grafischer Konfigurator für neue Ordner" \ "2. Projekt suchen" "Durchsucht Readmes nach Tags" \ "3. Beenden" "Schließt die Toolbox") case "$CHOICE" in "1. Projekt erstellen") - # Wir übergeben den vollen Pfad ($SCRIPT_SETUP) direkt an bash - xfce4-terminal --working-directory="$SCRIPT_DIR" -e "bash -c '$SCRIPT_SETUP; echo; echo \"Fertig. Taste drücken...\"; read'" + bash "$SCRIPT_SETUP" # Einfacher Aufruf ohne Terminal ;; "2. Projekt suchen") - # Suche direkt ausführen bash "$SCRIPT_FIND" ;; "3. Beenden" | "")