rubidium@9526: #!/bin/bash rubidium@9526: rubidium@9526: # This must be called from within the src/ai/api directory. rubidium@9526: truelight@9586: if [ -z "$1" ]; then truelight@9586: for f in `ls *.hpp `; do truelight@9586: case "$f" in truelight@9586: # these files should not be changed by this script truelight@9586: "ai_controller.hpp" | "ai_object.hpp") continue; truelight@9586: esac truelight@9586: awk -f squirrel_export.awk ${f} > ${f}.tmp rubidium@9596: if [ -n "`diff ${f}.tmp ${f}.sq 2> /dev/null || echo boo`" ]; then rubidium@9596: mv ${f}.tmp ${f}.sq truelight@9586: echo "Updated: ${f}" rubidium@9596: svn add ${f}.sq > /dev/null 2>&1 rubidium@9596: svn propset svn:eol-style native ${f}.sq > /dev/null 2>&1 rubidium@9596: svn propset svn:keywords Id ${f}.sq > /dev/null 2>&1 truelight@9586: else truelight@9586: rm -f ${f}.tmp truelight@9586: fi truelight@9586: done truelight@9586: else truelight@9586: awk -f squirrel_export.awk $1 > $1.tmp rubidium@9596: if [ -n "`diff $1.sq $1.tmp`" ]; then rubidium@9596: mv $1.tmp $1.sq truelight@9586: echo "Updated: $1" rubidium@9596: svn add $1.sq > /dev/null 2>&1 rubidium@9596: svn propset svn:eol-style native $1.sq > /dev/null 2>&1 rubidium@9596: svn propset svn:keywords Id $1.sq > /dev/null 2>&1 rubidium@9526: else truelight@9586: rm -f $1.tmp rubidium@9526: fi truelight@9586: fi rubidium@9528: rubidium@9528: rubidium@9528: # Add stuff to ../ai_squirrel.cpp rubidium@9528: f='../ai_squirrel.cpp' rubidium@9528: rubidium@9528: functions=`` rubidium@9528: rubidium@9528: echo " rubidium@9528: { } rubidium@9597: /.hpp.sq/ { next } rubidium@9597: /squirrel_register_std/ { next } rubidium@9597: /SQAI.*Register/ { next } rubidium@9597: rubidium@9597: /Note: this line a marker in squirrel_export.sh. Do not change!/ { rubidium@9597: print \$0 rubidium@9596: split(\"`grep '^void SQAI.*Register(Squirrel \*engine) {$' *.hpp.sq | sed 's/:.*$//' | sort | uniq | tr -d '\r' | tr '\n' ' '`\", files, \" \") rubidium@9528: rubidium@9528: for (i = 1; files[i] != \"\"; i++) { rubidium@9528: print \"#include \\\"api/\" files[i] \"\\\"\" rubidium@9528: } rubidium@9528: rubidium@9528: next; rubidium@9528: } rubidium@9528: rubidium@9528: /\/\* Register all classes \*\// { rubidium@9597: print \$0 rubidium@9528: print \" squirrel_register_std(this->engine);\" rubidium@9596: split(\"`grep '^void SQAI.*Register(Squirrel \*engine) {$' *.hpp.sq | sed 's/^.*void //;s/Squirrel \*/this->/;s/ {/;/' | sort | tr -d '\r' | tr '\n' ' '`\", regs, \" \") rubidium@9528: rubidium@9528: for (i = 1; regs[i] != \"\"; i++) { rubidium@9528: print \" \" regs[i] rubidium@9528: } rubidium@9528: rubidium@9528: next rubidium@9528: } rubidium@9528: rubidium@9528: { print \$0; } rubidium@9528: " > ${f}.awk rubidium@9528: rubidium@9528: awk -f ${f}.awk ${f} > ${f}.tmp rubidium@9528: rubidium@9528: if [ -n "`diff ${f} ${f}.tmp`" ]; then rubidium@9528: mv ${f}.tmp ${f} rubidium@9572: echo "Updated: ${f}" rubidium@9528: else rubidium@9528: rm -f ${f}.tmp rubidium@9528: fi rubidium@9528: rm -f ${f}.awk