Files
_Assistant_Lead_Tech/scripts/mkproj.sh
2026-03-08 16:24:41 +01:00

148 lines
2.3 KiB
Bash
Executable File

#!/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 <nom_du_projet>"
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 <<EOF > "$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 <repo>"
echo " docker compose up -d"