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 glx@9693: for f in `ls *.hpp`; do glx@9693: case "${f}" in truelight@9586: # these files should not be changed by this script truebrain@10339: "ai_controller.hpp" | "ai_object.hpp" | "ai_types.hpp" ) continue; truelight@9586: esac truelight@9586: awk -f squirrel_export.awk ${f} > ${f}.tmp truebrain@10338: if ! [ -f "${f}.sq" ] || [ -n "`diff -I '$Id' -b ${f}.tmp ${f}.sq 2> /dev/null || echo boo`" ]; then rubidium@9596: mv ${f}.tmp ${f}.sq glx@9693: echo "Updated: ${f}.sq" 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 truebrain@10338: if ! [ -f "${f}.sq" ] || [ -n "`diff -I '$Id' -b $1.sq $1.tmp 2> /dev/null || echo boo`" ]; then rubidium@9596: mv $1.tmp $1.sq glx@9693: echo "Updated: $1.sq" 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: glx@9693: # Remove .hpp.sq if .hpp doesn't exist anymore glx@9693: for f in `ls *.hpp.sq`; do glx@9693: f=`echo ${f} | sed "s/.hpp.sq$/.hpp/"` glx@9693: if [ ! -f ${f} ];then glx@9693: echo "Deleted: ${f}.sq" glx@9693: svn del --force ${f}.sq > /dev/null 2>&1 glx@9693: fi glx@9693: done rubidium@9528: truebrain@10643: # Add stuff to ai_controller.cpp truebrain@10643: f='ai_controller.cpp' rubidium@9528: rubidium@9528: functions=`` rubidium@9528: rubidium@9528: echo " rubidium@9528: { } rubidium@9597: /.hpp.sq/ { next } rubidium@9597: /squirrel_register_std/ { next } truebrain@9741: /SQAI.*_Register/ { next } rubidium@9597: rubidium@9597: /Note: this line a marker in squirrel_export.sh. Do not change!/ { rubidium@9597: print \$0 truebrain@9741: 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++) { truebrain@10643: print \"#include \\\"\" 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);\" truebrain@9741: split(\"`grep '^void SQAI.*_Register(Squirrel \*engine) {$' *.hpp.sq | sed 's/^.*void //;s/Squirrel \*/this->/;s/ {/;/;s/_Register/0000Register/g;' | sort | sed 's/0000Register/_Register/g' | 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: truebrain@10338: if ! [ -f "${f}" ] || [ -n "`diff -I '$Id' -b ${f} ${f}.tmp 2> /dev/null || echo boo`" ]; 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