mirror of
https://github.com/pd-l2ork/pd-l2ork.git
synced 2026-02-11 17:50:41 +01:00
110 lines
2.4 KiB
Bash
Executable File
110 lines
2.4 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
|
|
PD_ROOT=$1
|
|
|
|
NETRECEIVE_PATCH=/tmp/.____pd_netreceive____.pd
|
|
PORT_NUMBER=55556
|
|
LOG_FILE=/tmp/load_every_object-log-`date +20%y-%m-%d_%H.%M.%S`.txt
|
|
|
|
TEST_DIR=/tmp
|
|
TEST_PATCH=.____test_patch.pd
|
|
|
|
PRE_SLEEP=30
|
|
|
|
helpdir=${PD_ROOT}/doc
|
|
objectsdir=${PD_ROOT}/extra
|
|
bindir=${PD_ROOT}/bin
|
|
|
|
#PDSEND=${bindir}/pdsend
|
|
#PD=${bindir}/pd
|
|
|
|
# if ${PD} is not set, it will be set to ${bindir}/pd
|
|
# if ${PD} is already set, this value will be used
|
|
## this way we can use a 'default' pd to test externals
|
|
## that live not necessarily in ${PD_ROOT}/bin/../extra
|
|
if test "x${PD}" = "x" ; then
|
|
PD=${bindir}/pd
|
|
fi
|
|
if test "x${PDSEND}" = "x" ; then
|
|
PDSEND=${PDSEND:-${bindir}/pdsend}
|
|
fi
|
|
|
|
# just imagine there is no [...]/extra directory
|
|
# because i want to test a bunch of "not installed"
|
|
# objects...
|
|
if test -d "${objectsdir}" ; then
|
|
:
|
|
else
|
|
objectsdir=${PD_ROOT}
|
|
fi
|
|
|
|
|
|
make_netreceive_patch ()
|
|
{
|
|
rm $1
|
|
touch $1
|
|
echo '#N canvas 222 130 454 304 10;' >> $1
|
|
echo "#X obj 111 83 netreceive $PORT_NUMBER 0 old;" >> $1
|
|
}
|
|
|
|
make_patch ()
|
|
{
|
|
rm $2
|
|
touch $2
|
|
object=`echo $1|sed 's|^\(.*\)\.[adilnpruwx_]*$|\1|'`
|
|
echo '#N canvas 222 130 454 304 10;' >> $2
|
|
echo "#X obj 111 83 $object;" >> $2
|
|
}
|
|
|
|
open_patch ()
|
|
{
|
|
echo "OPENING: $1 $2" >> $LOG_FILE
|
|
echo "; pd open $1 $2;" | ${PDSEND} $PORT_NUMBER localhost tcp
|
|
}
|
|
|
|
close_patch ()
|
|
{
|
|
echo "CLOSING: $1" >> $LOG_FILE
|
|
echo "; pd-$1 menuclose;" | ${PDSEND} $PORT_NUMBER localhost tcp
|
|
}
|
|
|
|
UNAME=`uname -s`
|
|
if test "x$UNAME" == "xDarwin" ; then
|
|
EXTENSION=pd_darwin
|
|
elif test "x$UNAME" == "xLinux" ; then
|
|
EXTENSION=pd_linux
|
|
else
|
|
EXTENSION=dll
|
|
fi
|
|
|
|
echo "Searching for ${EXTENSION} in ${objectsdir}"
|
|
|
|
make_netreceive_patch $NETRECEIVE_PATCH
|
|
|
|
touch $LOG_FILE
|
|
${PD} -nogui -stderr -open $NETRECEIVE_PATCH -path ${objectsdir} >> $LOG_FILE 2>&1 &
|
|
|
|
#wait for pd to start
|
|
echo -n going to sleep for ${PRE_SLEEP} secs...
|
|
sleep ${PRE_SLEEP}
|
|
echo "ready to perform!"
|
|
|
|
#for file in `find $objectsdir -name "*.${EXTENSION}"`; do
|
|
find ${objectsdir} -name "*.${EXTENSION}" | while read file; do
|
|
echo $file
|
|
#JMZ: wow, couldn't this be done with following?
|
|
# filename=${file##*/}
|
|
# dir=${file%/*}
|
|
filename=`echo $file|sed 's|.*/\(.*\.[adilnpruwx_]*\)$|\1|'`
|
|
dir=`echo $file|sed 's|\(.*\)/.*\.[adilnpruwx_]*$|\1|'`
|
|
make_patch $filename ${TEST_DIR}/${TEST_PATCH}
|
|
open_patch ${TEST_PATCH} ${TEST_DIR}
|
|
sleep 1
|
|
close_patch ${TEST_PATCH}
|
|
done
|
|
|
|
|
|
echo "COMPLETED!" >> $LOG_FILE
|
|
echo "; pd quit;" | ${PDSEND} $PORT_NUMBER localhost tcp
|