Now, with colors :

#!/bin/sh

TOP_COLOR=greenyellow
BOTTOM_COLOR=firebrick

echo "digraph pkg_dep"
echo "{"

for PKG in $(pkg_info | cut -d' ' -f1) ; do
       PKG_INFO=$(pkg_info -c $PKG | tail -n+4 | tr -s '\n')
       echo "\t\"$PKG\" [label=\"$PKG\\\n$PKG_INFO\"];"
       REQ_BY=""
       for REQ_BY in $(pkg_info -R $PKG | tail -n+4 | tr -s '\n') ; do
               echo "\t\"$REQ_BY\" -> \"$PKG\";"
       done
       REQ=$(pkg_info -f $PKG | grep '@depend' | cut -d' ' -f2 | cut -d':' -f3)
       if [ -z "$REQ_BY" ] ; then
               echo "\t\"$PKG\" [color=\"$TOP_COLOR\", style=\"filled\"];"
       elif [ -z "$REQ" ] ; then
               echo "\t\"$PKG\" [color=\"$BOTTOM_COLOR\", style=\"filled\"];"
       fi
done

echo "}"



2006/10/8, Bruno Carnazzi <[EMAIL PROTECTED]>:
First blood :

#!/bin/sh

echo "digraph pkg_dep"
echo "{"

for PKG in $(pkg_info | cut -d' ' -f1)
do
        PKG_INFO=$(pkg_info -c $PKG | tail -n+4 | tr -s '\n')
        echo "\t\"$PKG\" [label=\"$PKG\\\n$PKG_INFO\"];"
        for REQ_BY in $(pkg_info -R $PKG | tail -n+4 | tr -s '\n')
        do
                echo "\t\"$REQ_BY\" -> \"$PKG\";"
        done
done

echo "}"

But for my big packages set, it does not produce a beautiful graph.
Someone know how to beautify it ?

Thank you,

Bruno.

Attached, my generated dot file (gosh ! gdm is really a pig !) :

[SNIP]

2006/10/7, Matthias Kilian <[EMAIL PROTECTED]>:
> On Sat, Oct 07, 2006 at 10:32:21PM +0400, Bruno Carnazzi wrote:
> > Someone knows if this kind of stuff already exists ?
>
> I just found this one (old, untested, and after all *not* supported,
> since it seems to directly access /var/db/pkg):
>
> http://vgai.de/gpkgview.sh
>
> Ciao,
>         Kili

Reply via email to