47 lines
901 B
Bash
47 lines
901 B
Bash
#! /bin/bash
|
|
|
|
# This hack is a wrapper to GraphViz dot that removes any nodes that
|
|
# are contained in the following list.
|
|
|
|
LABELS_TO_FILTER="QObject Item"
|
|
|
|
ARGS=$@
|
|
|
|
for ARG in ${ARGS}
|
|
do
|
|
if [ -e ${ARG} ]
|
|
then
|
|
FILENAME=$(basename "${ARG}")
|
|
EXT="${FILENAME##*.}"
|
|
|
|
if [ ${EXT} == "dot" ]
|
|
then
|
|
DOT_FILE=${ARG}
|
|
|
|
for LABEL_TO_FILTER in ${LABELS_TO_FILTER}
|
|
do
|
|
NODE_NAME=$(grep "label=\"${LABEL_TO_FILTER}\"" ${DOT_FILE} | awk '{print $1}')
|
|
|
|
if [[ ! -z "${NODE_NAME}" ]]
|
|
then
|
|
echo "${NODE_NAME} is labelled ${LABEL_TO_FILTER}, filtering..."
|
|
sed -i -e "/${NODE_NAME}/d" ${DOT_FILE}
|
|
fi
|
|
done
|
|
|
|
break
|
|
fi
|
|
fi
|
|
done
|
|
|
|
if [[ -x "/usr/local/bin/dot" ]]
|
|
then
|
|
/usr/local/bin/dot ${ARGS}
|
|
elif [[ -x "/usr/bin/dot" ]]
|
|
then
|
|
/usr/bin/dot ${ARGS}
|
|
else
|
|
echo "Program dot not found: See file doc/dot"
|
|
exit 1
|
|
fi
|