parse show interface $port adsl-status
[APKPM.git] / scripts / gearman2dot.pl
index 96cd8d2..4e889bf 100755 (executable)
@@ -22,12 +22,15 @@ sub print_job {
        $name = $job->{name};
 
        foreach my $taskset ( keys %{ $job->{task} } ) {
-               dot "subgraph ${name}_$taskset {";
+               dot qq|subgraph cluster_${name}_$taskset {      
+                       style = filled; color=lightgray; label="$name"
+                       node [style=filled,color=white];
+               |;
                my @t = @{ $job->{task}->{$taskset} };
                my $wait = $t[$#t] eq 'wait' && pop @t;
                foreach my $f ( @t ) {
-                       dot qq|"$name" -> "$f"|;
-                       dot qq|"$f" -> "${name}_wait"| if $wait;
+                       dot qq|"$name" -> "$f";|;
+                       dot qq|"$f" -> "${name}";| if $wait;
                }
                dot "} //subgraph";
        }
@@ -50,8 +53,11 @@ find(sub {
                                push @{ $job->{task}->{$1} }, 'wait';
                        }
                } elsif ( m/\$self->(do\w*)\(\s*'(\w+)'/ ) {
-                       push @{ $job->{$1} }, $2;
-                       dot qq|"$job->{name}" -> "$2" [ label="$1" ]|;
+                       my ( $do, $what ) = ( $1, $2 );
+                       push @{ $job->{$do} }, $what;
+                       my $style = '';
+                       $style = ' style=dotted ' if $do =~ s/_background.*//;
+                       dot qq|"$job->{name}" -> "$what" [ $style ];|;
                }
        }
        print_job $name => $job;