pre-bemis
This commit is contained in:
46
rpi-case/.claude/skills/openscad/tools/validate.sh
Executable file
46
rpi-case/.claude/skills/openscad/tools/validate.sh
Executable file
@@ -0,0 +1,46 @@
|
||||
#!/bin/bash
|
||||
# Validate an OpenSCAD file for syntax errors
|
||||
# Usage: validate.sh input.scad
|
||||
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
source "$SCRIPT_DIR/common.sh"
|
||||
|
||||
check_openscad
|
||||
|
||||
if [ $# -lt 1 ]; then
|
||||
echo "Usage: $0 input.scad"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
INPUT="$1"
|
||||
|
||||
if [ ! -f "$INPUT" ]; then
|
||||
echo "Error: File not found: $INPUT"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Validating: $INPUT"
|
||||
|
||||
# Create temp file for output
|
||||
TEMP_OUTPUT=$(mktemp /tmp/openscad_validate.XXXXXX.echo)
|
||||
trap "rm -f $TEMP_OUTPUT" EXIT
|
||||
|
||||
# Run OpenSCAD with echo output (fastest way to check syntax)
|
||||
# Using --export-format=echo just parses and evaluates without rendering
|
||||
if $OPENSCAD -o "$TEMP_OUTPUT" --export-format=echo "$INPUT" 2>&1; then
|
||||
echo "✓ Syntax OK"
|
||||
|
||||
# Check for warnings in stderr
|
||||
if [ -s "$TEMP_OUTPUT" ]; then
|
||||
echo ""
|
||||
echo "Echo output:"
|
||||
cat "$TEMP_OUTPUT"
|
||||
fi
|
||||
|
||||
exit 0
|
||||
else
|
||||
echo "✗ Validation failed"
|
||||
exit 1
|
||||
fi
|
||||
Reference in New Issue
Block a user