#!/usr/bin/env bash set -euo pipefail PROJECT_NAME="${1:-}" OS="$(uname -s)" TARGET_BASE="" PROJECT_PATH="" if [ -z "$PROJECT_NAME" ]; then echo "Usage: mkproj " exit 1 fi choose_mac_target_base() { echo "Environnement détecté : Mac" echo "Choisir le type de projet :" echo " 1) Projet perso -> /Volumes/TeraSSD/Projets_Dev" echo " 2) Projet Mindleaf -> /Volumes/TeraSSD/Projets_Dev/__Mindleaf" printf "Votre choix [1/2] : " read -r choice case "$choice" in 1) TARGET_BASE="/Volumes/TeraSSD/Projets_Dev" ;; 2) TARGET_BASE="/Volumes/TeraSSD/Projets_Dev/__Mindleaf" ;; *) echo "Choix invalide." exit 1 ;; esac } choose_target_base() { case "$OS" in Linux) echo "Environnement détecté : NUC/Linux" TARGET_BASE="/srv/projects" ;; Darwin) choose_mac_target_base ;; *) echo "Système non supporté : $OS" exit 1 ;; esac } create_readme() { cat < "$PROJECT_PATH/README.md" # $PROJECT_NAME Projet initialisé avec l'environnement Lead_tech. ## Structure attendue - \`CLAUDE.md\` : mémoire active du projet - \`AGENTS.md\` : symlink vers \`CLAUDE.md\` - \`README.md\` : documentation projet - \`.gitignore\` : exclusions Git de base ## Commandes utiles \`\`\`bash # Initialiser la mémoire projet gen-claude # Démarrer la stack Docker docker compose up -d \`\`\` EOF } create_gitignore() { cat <<'EOF' > "$PROJECT_PATH/.gitignore" # dependencies node_modules/ # logs logs/ *.log npm-debug.log* yarn-debug.log* yarn-error.log* pnpm-debug.log* # env .env .env.* !.env.example # build outputs dist/ build/ coverage/ .next/ out/ # editors / OS .DS_Store .vscode/ .idea/ # local runtime data .tmp/ tmp/ # AI tools .claude/ .codex/ EOF } choose_target_base if [ ! -d "$TARGET_BASE" ]; then echo "Le dossier cible n'existe pas : $TARGET_BASE" exit 1 fi PROJECT_PATH="$TARGET_BASE/$PROJECT_NAME" if [ -e "$PROJECT_PATH" ]; then echo "Le dossier existe déjà : $PROJECT_PATH" exit 1 fi mkdir -p "$PROJECT_PATH" cd "$PROJECT_PATH" git init # mémoire agents gen-claude "$PROJECT_NAME" create_readme create_gitignore echo "" echo "Projet créé : $PROJECT_PATH" echo "" echo "Prochaines étapes :" echo " cd $PROJECT_PATH" echo " git remote add origin " echo " docker compose up -d"