Estrutura inicial, ambiente IA

This commit is contained in:
victor
2026-05-14 09:54:24 -03:00
commit 48095a3c64
49 changed files with 4596 additions and 0 deletions
+143
View File
@@ -0,0 +1,143 @@
#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(CDPATH='' cd -- "$(dirname -- "$0")" && pwd)"
SOURCE_DIR="$(CDPATH='' cd -- "$SCRIPT_DIR/../.." && pwd)"
FORCE=0
TARGET_DIR=""
usage() {
cat <<'EOF'
Uso:
bash .vscode/automatizadores/bootstrap-workspace.sh /caminho/do/novo-workspace [--force]
O script copia a base compartilhavel do workspace DavinTI para um novo diretório:
- .claude/agents
- .claude/settings.local.json (versao portavel)
- .vscode
- .github
- CLAUDE.md
- .mcp.json
Tambem cria as pastas:
- Andamento
- Concluidos
- Vitruvio/Documentação
- Vitruvio/Documentação/Componentes
EOF
}
log() {
printf '%s\n' "$1"
}
fail() {
printf 'Erro: %s\n' "$1" >&2
exit 1
}
copy_entry() {
local relative_path="$1"
local source_path="$SOURCE_DIR/$relative_path"
local target_path="$TARGET_DIR/$relative_path"
[ -e "$source_path" ] || fail "Origem nao encontrada: $relative_path"
mkdir -p "$(dirname "$target_path")"
if [ -e "$target_path" ]; then
if [ "$FORCE" -ne 1 ]; then
fail "Destino ja existe: $relative_path. Use --force para sobrescrever."
fi
rm -rf "$target_path"
fi
cp -a "$source_path" "$target_path"
log "Copiado: $relative_path"
}
write_portable_claude_settings() {
local target_path="$TARGET_DIR/.claude/settings.local.json"
mkdir -p "$(dirname "$target_path")"
if [ -e "$target_path" ] && [ "$FORCE" -ne 1 ]; then
fail "Destino ja existe: .claude/settings.local.json. Use --force para sobrescrever."
fi
cat > "$target_path" <<'EOF'
{
"permissions": {
"allow": [
"mcp__oracle-davinti__run_query"
]
},
"enableAllProjectMcpServers": true,
"enabledMcpjsonServers": [
"oracle-davinti"
]
}
EOF
log "Gerado: .claude/settings.local.json"
}
cleanup_vscode_mcp_dir() {
local mcp_dir="$TARGET_DIR/.vscode/mcp-oracle-davinti"
rm -rf "$mcp_dir/node_modules"
rm -f "$mcp_dir/.env"
}
create_base_directories() {
mkdir -p "$TARGET_DIR/Andamento"
mkdir -p "$TARGET_DIR/Concluidos"
mkdir -p "$TARGET_DIR/Vitruvio/Documentação"
mkdir -p "$TARGET_DIR/Vitruvio/Documentação/Componentes"
log "Criadas pastas base do workspace"
}
while [ "$#" -gt 0 ]; do
case "$1" in
--force)
FORCE=1
shift
;;
-h|--help)
usage
exit 0
;;
*)
if [ -n "$TARGET_DIR" ]; then
fail "Argumento inesperado: $1"
fi
TARGET_DIR="$1"
shift
;;
esac
done
[ -n "$TARGET_DIR" ] || {
usage
exit 1
}
TARGET_DIR="$(mkdir -p "$TARGET_DIR" && CDPATH='' cd -- "$TARGET_DIR" && pwd)"
[ "$TARGET_DIR" != "$SOURCE_DIR" ] || fail "O destino deve ser diferente da pasta do template."
copy_entry ".claude/agents"
write_portable_claude_settings
copy_entry ".vscode"
cleanup_vscode_mcp_dir
copy_entry ".github"
copy_entry "CLAUDE.md"
copy_entry ".mcp.json"
create_base_directories
log "Workspace base criado em: $TARGET_DIR"
log "Proximo passo: copie .vscode/mcp-oracle-davinti/.env.example para .env e ajuste as credenciais locais."