mirror of
https://github.com/MaksTinyWorkshop/_Assistant_Lead_Tech
synced 2026-04-06 21:41:42 +02:00
move scripts + create mkproj
This commit is contained in:
148
scripts/mkproj.sh
Executable file
148
scripts/mkproj.sh
Executable file
@@ -0,0 +1,148 @@
|
||||
#!/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"
|
||||
Reference in New Issue
Block a user