fetch_ml/scripts/ci/verify-paths.sh
Jeremie Fraeys cb142213fa
chore(build): update build system, Dockerfiles, and dependencies
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
2026-03-08 13:03:48 -04:00

72 lines
1.7 KiB
Bash
Executable file
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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