-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathclean.sh
More file actions
executable file
·186 lines (157 loc) · 4.99 KB
/
clean.sh
File metadata and controls
executable file
·186 lines (157 loc) · 4.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
#!/usr/bin/env bash
# Removes build, cache, and temporary files from viewmapper modules
set -e # Exit on error
set -u # Exit on undefined variable
# Color codes for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# Configuration
PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
AGENT_DIR="${PROJECT_ROOT}/viewmapper-agent"
MCP_SERVER_DIR="${PROJECT_ROOT}/viewmapper-mcp-server"
DOCKER_IMAGE="viewmapper:479"
# Helper functions
log_info() {
echo -e "${BLUE}[INFO]${NC} $1"
}
log_success() {
echo -e "${GREEN}[SUCCESS]${NC} $1"
}
log_warning() {
echo -e "${YELLOW}[WARNING]${NC} $1"
}
# Check if Docker is available
check_docker() {
if ! command -v docker &> /dev/null; then
log_warning "Docker not found - skipping Docker cleanup"
return 1
fi
return 0
}
# Clean viewmapper-agent
clean_agent() {
log_info "Cleaning viewmapper-agent..."
cd "${AGENT_DIR}"
# Remove Maven build artifacts
if [ -d "target" ]; then
rm -rf target
log_success "Removed target/"
fi
# Remove dependency-reduced-pom.xml (generated by shade plugin)
if [ -f "dependency-reduced-pom.xml" ]; then
rm -f dependency-reduced-pom.xml
log_success "Removed dependency-reduced-pom.xml"
fi
cd "${PROJECT_ROOT}"
}
# Clean viewmapper-mcp-server
clean_mcp_server() {
log_info "Cleaning viewmapper-mcp-server..."
cd "${MCP_SERVER_DIR}"
# Remove Python virtual environment
if [ -d "venv" ]; then
rm -rf venv
log_success "Removed venv/"
fi
# Remove Python cache
if [ -d "__pycache__" ]; then
rm -rf __pycache__
log_success "Removed __pycache__/"
fi
# Remove copied JAR file
if [ -f "viewmapper-479.jar" ]; then
rm -f viewmapper-479.jar
log_success "Removed viewmapper-479.jar"
fi
# Remove .pytest_cache if it exists
if [ -d ".pytest_cache" ]; then
rm -rf .pytest_cache
log_success "Removed .pytest_cache/"
fi
# Remove any .pyc files
find . -type f -name "*.pyc" -delete 2>/dev/null || true
cd "${PROJECT_ROOT}"
}
# Clean Docker artifacts
clean_docker() {
if ! check_docker; then
return
fi
log_info "Cleaning Docker artifacts..."
# Remove viewmapper image if it exists
if docker image inspect "${DOCKER_IMAGE}" &> /dev/null; then
docker image rm -f "${DOCKER_IMAGE}"
log_success "Removed Docker image: ${DOCKER_IMAGE}"
else
log_info "Docker image ${DOCKER_IMAGE} not found (already clean)"
fi
# Prune build cache
log_info "Pruning Docker build cache..."
if docker builder prune -f > /dev/null 2>&1; then
log_success "Pruned Docker build cache"
fi
# Prune buildx cache for viewmapper-builder (if it exists)
if docker buildx inspect viewmapper-builder &> /dev/null; then
log_info "Pruning Docker buildx cache for viewmapper-builder..."
if docker buildx prune --builder viewmapper-builder -f > /dev/null 2>&1; then
log_success "Pruned Docker buildx cache for viewmapper-builder"
fi
fi
# Prune buildx cache for default builder (if buildx is available)
if docker buildx version &> /dev/null; then
log_info "Pruning Docker buildx cache..."
if docker buildx prune -f > /dev/null 2>&1; then
log_success "Pruned Docker buildx cache"
fi
fi
# Prune system (dangling images, stopped containers, unused networks)
log_info "Pruning Docker system..."
if docker system prune -f > /dev/null 2>&1; then
log_success "Pruned Docker system (dangling images, stopped containers, unused networks)"
fi
}
# Display summary
display_summary() {
echo ""
echo "=========================================="
log_success "Clean complete"
echo "=========================================="
echo ""
# Show current size
local size=$(du -sh "${PROJECT_ROOT}" | cut -f1)
echo "Current directory size: ${size}"
echo ""
echo "Cleaned artifacts:"
echo " - viewmapper-agent/target/"
echo " - viewmapper-agent/dependency-reduced-pom.xml"
echo " - viewmapper-mcp-server/venv/"
echo " - viewmapper-mcp-server/__pycache__/"
echo " - viewmapper-mcp-server/viewmapper-479.jar"
if check_docker &> /dev/null; then
echo " - Docker image: ${DOCKER_IMAGE}"
echo " - Docker build cache"
if docker buildx inspect viewmapper-builder &> /dev/null; then
echo " - Docker buildx cache (viewmapper-builder)"
fi
if docker buildx version &> /dev/null; then
echo " - Docker buildx cache (default)"
fi
echo " - Docker system cache (dangling images, stopped containers, unused networks)"
fi
echo ""
echo "To rebuild: ./build.sh"
echo ""
}
# Main execution
main() {
log_info "Starting clean process..."
clean_agent
clean_mcp_server
clean_docker
display_summary
}
# Run main function
main