rap/bin/tinc2dot
2013-04-18 18:57:49 -03:00

84 lines
2.5 KiB
Bash
Executable File

#!/bin/bash
#
# grafico tinc2dot version 0.2.1
# Ernesto bazzano (c) Liberado bajo licencia AGPL
#
# Basado en los ejemplos de graphviz
# http://graphviz.org/content/psg
# http://graphviz.org/content/fsm
#
# Documentación: http://lab.hackcoop.com.ar/projects/librevpn/wiki/Tinc2dot
#
# requiere: graphviz
# optativo avahi-browse
DOT="/tmp/lvpn.dot"
DIA=$(date)
NODOS=$( cat $DOT | grep ">" )
SERVICIOS=$(avahi-browse --all -t -p | sort -u | sed 's/\ /-/g' )
echo "digraph Lab {
graph [fontsize=30 labelloc=\"b\" splines=true overlap=false rankdir=\"LR\"];
layout=circo;
size=\"10, 7.5\" ;
pad=\"0.5\";
stylesheet=\"style.css\";
mindist=0.05;
node [style = \"filled\", shape=\"circle\", margin=\".5,.5\", fixedsize=true, width=1.5, style=\"filled\"];
edge [penwidth=2, arrowsize=\"1.5\", margin=\"1,1\", pencolor=\"1 1 1\"];
${NODOS}
label=\"\nLibreVPN - ${DIA} - http://anastasia.local/tinc2dot\"
"
for NODO in $(echo $NODOS | sed 's/->/\n/g; s/;/\n/g; s/\ //g' | sort -u); do
ENLACES=$(echo $NODOS | sed 's/;/\n/g' | grep $NODO | wc -l)
GRUESO=$(echo $ENLACES/2 | bc -l | sed 's/\..*//g')
COLOR=$(echo \(1/10*0$GRUESO\)+0.3 | bc -l)
SATURACION="0.$(echo $((-11+$ENLACES)) | sed 's/-//g')"
#IP=$( ping -c 1 $NODO.local | grep from | sed 's/.*(\(.*\..*\..*\..*\)).*/\1/g')
if [ "$ENLACES" == "1" ]; then
ESTILO="style=\"dotted\""
GRUESO=1
else
ESTILO=""
fi
echo "$NODO [ $ESTILO \"
fillcolor=\"$COLOR $SATURACION .85\", \
penwidth=\"$(echo 14/10*$GRUESO+.8 | bc -l)\", \
tooltip=\"$(echo $(echo $SERVICIOS | sed 's/ /\n/g' | grep $NODO))\", \
URL=\"/vpn/?nodo=${NODO}\",\
width=\"$(echo \(3/10*$GRUESO\)+1.2 | bc -l)\", \
label=<<table border=\"0\" cellborder=\"0\" cellpadding=\"0\" align=\"center\" colspan=\"2\" >\
<tr><td><img src=\"vpn/avatar/${NODO}.png\" /></td><td>${NODO}</td></tr>\
</table>>\
]"
done
exit
image=\"vpn/img/${NODO}.png\",\
#fillcolor=\"$(echo \(1/10*0$GRUESO\)+0.5 | bc -l) $(echo 1/8*$GRUESO | bc -l) $(echo $GRUESO/10+.7 | bc -l)\", \
Que hay de nuevo:
-Mejoras graficas
-Solo una linea con doble flecha
-colores segun enlaces
-Mas enlaces
-color rojo
-mas saturacion
-Menos enlaces
-color azul
-mas saturacion
-enlaces promedio
-menos saturacion
-Avatares pequeños
-Listas