#!/usr/bin/env bash # ================================================================ # mkpyproject.sh - Standard Python Projekt Template erstellen # ================================================================ # Verwendung: mkpyproject.sh [zielverzeichnis] # # Beispiel: # mkpyproject.sh myapp # mkpyproject.sh myapp /c/10-Develop/gitrepos # ================================================================ set -e source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/setenv.sh" TMPL_DIR="$TOOLS_TEMPLATES/mkpyproject" # --- Argumente ------------------------------------------------------- PROJECT_NAME="${1:-}" TARGET_BASE="${2:-.}" if [ -z "$PROJECT_NAME" ]; then echo "FEHLER: Kein Projektname angegeben." echo "Verwendung: mkpyproject.sh [zielverzeichnis]" exit 1 fi PROJECT_UPPER="${PROJECT_NAME^^}" TARGET_DIR="$TARGET_BASE/$PROJECT_NAME" YEAR="$(date +%Y)" if [ -d "$TARGET_DIR" ]; then echo "FEHLER: Verzeichnis '$TARGET_DIR' existiert bereits." exit 1 fi echo "================================================================" echo "Erstelle Python-Projekt: $PROJECT_NAME" echo "Zielverzeichnis: $TARGET_DIR" echo "================================================================" # --- Verzeichnisse --------------------------------------------------- for d in bin cfg data doc examples lib log results tests; do mkdir -p "$TARGET_DIR/$d" done echo "[OK] Verzeichnisse angelegt" # --- Hilfsfunktion: Template kopieren mit Ersetzung ------------------ copy_tmpl() { local rel="$1" sed -e "s/__PROJECT_NAME__/$PROJECT_NAME/g" \ -e "s/__PROJECT_UPPER__/$PROJECT_UPPER/g" \ -e "s/__YEAR__/$YEAR/g" \ "$TMPL_DIR/$rel" > "$TARGET_DIR/$rel" } # --- bin/ Skripte ---------------------------------------------------- copy_tmpl "bin/setenv.bat" copy_tmpl "bin/setenv.sh" copy_tmpl "bin/install_py.bat" copy_tmpl "bin/install_py.sh" copy_tmpl "bin/activate_venv.bat" copy_tmpl "bin/activate_venv.sh" copy_tmpl "bin/get_cmd.bat" copy_tmpl "bin/get_cmd.sh" chmod +x "$TARGET_DIR/bin/"*.sh echo "[OK] bin/ Skripte erstellt" # --- Weitere Dateien ------------------------------------------------- copy_tmpl ".gitignore" echo "[OK] .gitignore erstellt" copy_tmpl "LICENSE" echo "[OK] LICENSE erstellt" copy_tmpl "README.md" echo "[OK] README.md erstellt" copy_tmpl "requirements.txt" echo "[OK] requirements.txt erstellt" echo "" echo "================================================================" echo "FERTIG! Projekt '$PROJECT_NAME' wurde erstellt." echo "================================================================" echo "" echo "Naechste Schritte:" echo " Windows: bin\install_py.bat" echo " Linux: bash bin/install_py.sh" echo ""