Build and deployment improvements: Makefile: - Native library build targets with ASan support - Cross-platform compilation helpers - Performance benchmark targets - Security scan integration Docker: - secure-prod.Dockerfile: Hardened production image (non-root, minimal surface) - simple.Dockerfile: Lightweight development image Scripts: - build/: Go and native library build scripts, cross-platform builds - ci/: checks.sh, test.sh, verify-paths.sh for validation - benchmarks/: Local performance testing and regression tracking - dev/: Monitoring setup Dependencies: Update to latest stable with security patches Commands: - api-server/main.go: Server initialization updates - data_manager/data_sync.go: Data sync with visibility - errors/main.go: Error handling improvements - tui/: TUI improvements for group management
72 lines
1.7 KiB
Bash
Executable file
72 lines
1.7 KiB
Bash
Executable file
#!/bin/bash
|
||
# Verify repository path conventions
|
||
|
||
set -euo pipefail
|
||
|
||
FAILED=0
|
||
cd "$(git rev-parse --show-toplevel 2>/dev/null || pwd)"
|
||
|
||
echo "=== Path Convention Verification ==="
|
||
|
||
# Check 1: No binaries in root
|
||
echo "Checking for binaries in root..."
|
||
for binary in api-server worker tui data_manager; do
|
||
if [ -f "./$binary" ]; then
|
||
echo "✗ FAIL: Binary $binary found in root (should be in bin/)"
|
||
FAILED=1
|
||
fi
|
||
done
|
||
if [ $FAILED -eq 0 ]; then
|
||
echo "No binaries in root"
|
||
fi
|
||
|
||
# Check 2: No .DS_Store files
|
||
echo "Checking for .DS_Store files..."
|
||
DSSTORE_COUNT=$(find . -name ".DS_Store" -type f 2>/dev/null | wc -l)
|
||
if [ "$DSSTORE_COUNT" -gt 0 ]; then
|
||
echo "✗ FAIL: $DSSTORE_COUNT .DS_Store file(s) found"
|
||
find . -name ".DS_Store" -type f | head -5
|
||
FAILED=1
|
||
else
|
||
echo "No .DS_Store files"
|
||
fi
|
||
|
||
# Check 3: No coverage.out in root
|
||
echo "Checking for coverage.out in root..."
|
||
if [ -f "./coverage.out" ]; then
|
||
echo "✗ FAIL: coverage.out found in root (should be in coverage/)"
|
||
FAILED=1
|
||
else
|
||
echo "No coverage.out in root"
|
||
fi
|
||
|
||
# Check 4: Bin directory should exist or be empty
|
||
echo "Checking bin/ directory..."
|
||
if [ -d "./bin" ]; then
|
||
BIN_COUNT=$(ls -1 ./bin 2>/dev/null | wc -l)
|
||
echo "bin/ exists ($BIN_COUNT files)"
|
||
else
|
||
echo "ℹ bin/ does not exist (will be created by make build)"
|
||
fi
|
||
|
||
# Check 5: Data directories should be gitignored
|
||
echo "Checking data/ directory..."
|
||
if [ -d "./data" ]; then
|
||
if git check-ignore -q ./data 2>/dev/null; then
|
||
echo "data/ is gitignored"
|
||
else
|
||
echo "⚠ WARNING: data/ exists but may not be gitignored"
|
||
fi
|
||
else
|
||
echo "ℹ data/ does not exist"
|
||
fi
|
||
|
||
# Summary
|
||
echo ""
|
||
if [ $FAILED -eq 0 ]; then
|
||
echo "All path conventions verified"
|
||
exit 0
|
||
else
|
||
echo "✗ Path convention verification failed"
|
||
exit 1
|
||
fi
|