该脚本主要是根据ninja生成的graphviz dot file文本文件,然后根据其中一个label节点,查找 其父子节点。方便理清该节点的编译链接关系。该脚本生成某一个label节点的父子节点dot描述内容,存为dot类文件。然后使用dot工具,将dot文件生成png或者Pdf文件。
#!/bin/bash
#set -x
PARA_N=2
if [ $# -lt $PARA_N ];then
echo usage:$0 label graph
exit 1
fi
TMP_DOT=tmp.dot #target dot file
TMP_TMP=tmp.tmp #temporary file
TMP_CHILDREN_ID=children.id #temporary file
TMP_PARENT_ID=parent.id #temporary file
label_id=$1
dot_file=$2
dot_n=$3
#echo $label_id $dot_file
IGNORE_ID_TXT=ignore_id.txt
#find current label id
head -n 4 $dot_file > $dot_n.$TMP_DOT
grep "$label_id\" \[label" $dot_file | grep -v "\->" > $TMP_TMP
label_num=`cat $TMP_TMP | wc -l`
if [ $label_num -gt 1 ];then
echo ignore $label_id
echo $label_id >> $IGNORE_ID_TXT
rm $TMP_TMP $dot_n.$TMP_DOT
exit 1
fi
#label_id=`cat $TMP_TMP|awk -F\" '{ print $2 }'`
grep