fetch_ml/scripts/ci/verify-paths.sh

72 lines
1.8 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