#/bin/sh
cd /var/www/apps2/data/pages

grep -ri "{tag>" *  |grep -vi "@tag@" > /tmp/alltags.txt
sed 's/^.*{{tag>\([^}]*\)}}.*$/\1/g' /tmp/alltags.txt | sed 's/[ \t]/\n/g' | tr "[:upper:]" "[:lower:]" | sort | uniq -c | sort -nr > /tmp/counttags.txt
sed 's/^.*{{tag>\([^}]*\)}}.*$/\1/g' /tmp/alltags.txt | sed 's/[ \t]/\n/g' | sort -f | uniq -i > /tmp/uniqtags.txt

cd /var/www/apps2/data/pages/apps/categories
for tag in $(cat /tmp/uniqtags.txt | tr "[:upper:]" "[:lower:]"); do
  echo -n "$tag;";
  for par in $(grep "{tag>" $tag.txt | sed 's/^.*{{tag>\([^}]*\)}}.*$/\1/g'); do
    echo -n "$par,"
  done
  echo 
done | sed 's/,$//g' > /tmp/taglist.txt

echo "digraph laotags { node [fontcolor=\"black\"]" > /tmp/tags.dot
for tag in $(cat /tmp/uniqtags.txt | tr "[:upper:]" "[:lower:]"); do
  echo -n " \"$tag ("
  c=$(grep -e " $tag\$" /tmp/counttags.txt | awk '//{printf "%d", $1;}')
  echo -n $c
  echo -n ")\""
  #test $c -gt 100 && c=100
  #echo " [fillcolor=\"gray$c\",style=\"filled\"]"
  test $c -gt 127 && c=127
  c3=220
  test $c -gt 20 && c3=160
  test $c -gt 40 && c3=10
  c2=$[ $c * 2 ];
  printf " [fillcolor=\"#%02x%02xee\",style=\"filled\"]\n" $c2 $c3
done  >> /tmp/tags.dot
for tag in $(cat /tmp/uniqtags.txt | tr "[:upper:]" "[:lower:]"); do
  echo -n " \"$tag ("
  c=$(grep -e " $tag\$" /tmp/counttags.txt | awk '//{printf "%d", $1;}')
  echo -n $c
  echo -n ")\""
  for par in $(grep "{tag>" $tag.txt | sed 's/^.*{{tag>\([^}]*\)}}.*$/\1/g'); do
    pa=$(echo $par | tr "[:upper:]" "[:lower:]")
    echo -n " -> \"$pa ("
    grep -e " $pa\$" /tmp/counttags.txt | awk '//{printf "%d", $1;}'
    echo -n ")\""
  done
  echo
done  >> /tmp/tags.dot
echo "}" >> /tmp/tags.dot

echo "digraph laoinh { node [fontcolor=\"black\"]" > /tmp/tags_uniq.dot
for xt in $(grep -- "->" /tmp/tags.dot | awk '//{print $1;}' | sed 's/\"//g') ; do grep -e "\"$xt (.*\[fillc" /tmp/tags.dot ; done  >> /tmp/tags_uniq.dot
grep -- "->" /tmp/tags.dot >> /tmp/tags_uniq.dot
echo "}" >> /tmp/tags_uniq.dot

echo "digraph laoinh { node [fontcolor=\"black\"]" > /tmp/tags_orphan.dot
for xt in $(grep -v -- "->" /tmp/tags.dot | grep -v "fillcolor"  | grep "(" | awk '//{print $1;}' | sed 's/\"//g') ; do grep -e "\"$xt (.*\[fillc" /tmp/tags.dot ; done  >> /tmp/tags_orphan.dot
grep -v -- "->" /tmp/tags.dot | grep -v "fillcolor" | grep "(">>/tmp/tags_orphan.dot
echo "}" >> /tmp/tags_orphan.dot

dot /tmp/tags.dot  -Tpng > /tmp/graph.png
dot /tmp/tags_uniq.dot  -Tpng > /tmp/graph_uniq.png

fdp /tmp/tags.dot  -Tpng > /tmp/graph1.png
fdp /tmp/tags_uniq.dot  -Tpng > /tmp/graph2.png
fdp /tmp/tags_orphan.dot  -Tpng > /tmp/graph3.png

fdp /tmp/tags.dot  -Tpng > /tmp/graph_all.png
fdp /tmp/tags.dot  -Tsvg > /tmp/graph_all.svg
fdp /tmp/tags_uniq.dot  -Tsvg > /tmp/graph_uniq.svg
fdp /tmp/tags_orphan.dot  -Tsvg > /tmp/graph_orphan.svg

