Files
dss/scripts/dss-reset.sh
DSS ec09a0a662
Some checks failed
DSS Project Analysis / dss-context-update (push) Has been cancelled
Unify MCP across clients; remove legacy plugin server
2025-12-12 14:33:18 -03:00

133 lines
3.5 KiB
Bash
Executable File

#!/bin/bash
# DSS Full Reset Script
# Clears all DSS data, skins, tokens, and generated files
#
# Usage: scripts/dss-reset.sh [--confirm]
# Without --confirm, runs in dry-run mode showing what would be deleted
set -e
DSS_ROOT="$(cd "$(dirname "$0")/.." && pwd)"
cd "$DSS_ROOT"
DRY_RUN=true
if [ "$1" = "--confirm" ]; then
DRY_RUN=false
fi
echo "=========================================="
echo " DSS Full Reset"
echo "=========================================="
echo ""
if [ "$DRY_RUN" = true ]; then
echo "🔍 DRY RUN MODE - No changes will be made"
echo " Run with --confirm to execute reset"
echo ""
fi
run_or_show() {
if [ "$DRY_RUN" = true ]; then
echo " Would run: $*"
else
eval "$@"
fi
}
# 1. Clear .dss/data/ (preserves .dss/config/ which is IMMUTABLE)
echo "1. Clearing .dss/data/ structure..."
echo " (preserving .dss/config/ - Figma credentials)"
run_or_show "rm -rf .dss/data/projects/* .dss/data/teams/* .dss/data/_system/cache/* .dss/data/_system/activity/* 2>/dev/null || true"
run_or_show "rm -rf .dss/data/_system/tokens/* .dss/data/_system/themes/* .dss/data/_system/components/* 2>/dev/null || true"
run_or_show "mkdir -p .dss/data/{projects,teams,_system/{cache,activity,tokens,themes,components}}"
# 2. Remove admin-ui DSS CSS (keep non-dss files)
echo "2. Removing admin-ui DSS CSS files..."
run_or_show "rm -f admin-ui/css/dss-*.css"
# 3. Remove generated stories and components
echo "3. Removing generated stories and components..."
run_or_show "rm -f admin-ui/src/components/*.stories.js admin-ui/src/components/ds-*.js"
# 4. Reset core_tokens
echo "4. Resetting core_tokens..."
if [ "$DRY_RUN" = false ]; then
cat > dss/core_tokens/tokens.json << 'EOF'
{
"_meta": {
"version": "1.0.0",
"generated": null,
"source": "awaiting Figma sync",
"status": "empty"
},
"tokens": {}
}
EOF
else
echo " Would reset: dss/core_tokens/tokens.json"
fi
# 5. Reset skins to empty
echo "5. Resetting skins..."
for skin in base classic workbench; do
if [ "$DRY_RUN" = false ]; then
# Capitalize first letter for description
skin_cap="$(echo "$skin" | sed 's/./\U&/')"
if [ "$skin" = "base" ]; then
cat > "dss-claude-plugin/core/skins/${skin}.json" << EOF
{
"meta": {
"id": "${skin}",
"version": "1.0.0",
"description": "${skin_cap} skin - awaiting Figma sync"
},
"tokens": {}
}
EOF
else
cat > "dss-claude-plugin/core/skins/${skin}.json" << EOF
{
"meta": {
"id": "${skin}",
"version": "1.0.0",
"description": "${skin_cap} skin - awaiting Figma sync",
"extends": "base"
},
"tokens": {}
}
EOF
fi
else
echo " Would reset: dss-claude-plugin/core/skins/${skin}.json"
fi
done
# 6. Clear caches and logs
echo "6. Clearing caches and logs..."
run_or_show "rm -f .dss/logs/*.jsonl 2>/dev/null || true"
run_or_show "rm -rf .dss/logs/browser-logs/* 2>/dev/null || true"
run_or_show "touch .dss/logs/dss-operations.jsonl .dss/logs/git-hooks.jsonl"
# 7. Regenerate hash manifest
echo "7. Regenerating hash manifest..."
if [ "$DRY_RUN" = false ]; then
./scripts/regenerate-core-hashes.sh
else
echo " Would run: ./scripts/regenerate-core-hashes.sh"
fi
# 9. Stop Storybook if running
echo "9. Stopping Storybook..."
run_or_show "pkill -f storybook 2>/dev/null || true"
echo ""
echo "=========================================="
if [ "$DRY_RUN" = true ]; then
echo " DRY RUN COMPLETE"
echo " Run with --confirm to execute"
else
echo " DSS RESET COMPLETE"
echo " Ready for fresh Figma sync"
fi
echo "=========================================="