Files
tools/bin/mkpyproject.sh
T

91 lines
2.7 KiB
Bash

#!/usr/bin/env bash
# ================================================================
# mkpyproject.sh - Standard Python Projekt Template erstellen
# ================================================================
# Verwendung: mkpyproject.sh <projektname> [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 <projektname> [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 ""