#!/bin/bash
#set -x
verbmsg()
{
true
# echo $1
}

if test ! -d simulat0r/firmware -o ! -d firmware
then
echo ERROR:
echo This script must be run from toplevel r0ket directory
exit
fi

echo "Updating directories"
for i in `find firmware -type d `
do 
if test -d simulat0r/$i
then verbmsg "OK Directory already exists: $i"
else mkdir -v simulat0r/$i
fi
done

echo "Updating bridge files for C source"
for i in `find firmware \! -path firmware/lcd/allfonts.h \! -path firmware/l0dable/usetable.h -type f -iname \*.[ch]`
do 
    if test -f simulat0r/$i; 
    then
	verbmsg "OK File already exists: $i" 
    else
	echo Writing bridge file simulat0r/$i
	(printf "/* AUTOGENERATED SOURCE FILE */\n"; echo \#include \"`dirname $i | sed "s#[^/]*#..#g" `/../$i\") >simulat0r/$i
    fi
done

echo "Looking for dangling bridge files (i.e. the original file no longer exists)"
for i in `find simulat0r/firmware \! -path simulat0r/firmware/libc-unc0llide.h -type f -iname \*.[ch] | sed "s#simulat0r/##"`
do
    if test -f $i;
    then
        verbmsg "OK File still exists: $i"
    else
#	echo Introspecting dangling bridge file simulat0r/$i
        if cmp -s simulat0r/$i <(printf "/* AUTOGENERATED SOURCE FILE */\n"; echo \#include \"`dirname $i | sed "s#[^/]*#..#g" `/../$i\") ;
	then
            echo Dangling unchanged bridge file simulat0r/$i
	    SUGGESTDEL="$SUGGESTDEL simulat0r/$i"
	else
            echo Dangling modified bridge file simulat0r/$i
	fi
    fi
done
if test "$SUGGESTDEL"; 
then
    echo You might want to delete unneeded unmodified bridge files:
    echo
    echo rm $SUGGESTDEL
    echo git rm $SUGGESTDEL
    echo
fi


echo "Updating bridge files for Makefiles"
for i in `find firmware -type f -iname Makefile`
do 
    if test -f simulat0r/$i; 
    then
	verbmsg "OK File already exists: $i" 
    else
	echo Writing bridge file simulat0r/$i
	(printf "# GENERATED INCLUDE BRIDGE/\n"; echo include `dirname $i | sed "s#[^/]*#..#g" `/../$i) >simulat0r/$i
    fi
done


for i in `find firmware -type f -name .gitignore`; do
    if cmp $i simulat0r/$i
    then
	echo OK $i and simulat0r/$i are the same
    else
	echo WARNING: $i mismatches simulat0r/$i
	echo "   give this command a try if the following diff looks reasonable:"
	echo "   cp $i simulat0r/$i"
	diff -y $i simulat0r/$i || true
    fi 
done