ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/ozone/mgar/pkg/py311/gar/bin/depgraph
Revision: 11
Committed: Sat Jun 20 21:40:57 2026 UTC (4 weeks, 2 days ago) by operz
File size: 2431 byte(s)
Log Message:
Add Python 3.11.15 recipe (OZSWpy311); update readline to link against ncurses (for Python curses module)

File Contents

# User Rev Content
1 operz 11 #!/bin/env perl -w
2     #
3     # $Id: depgraph 11860 2010-12-09 03:47:03Z skayser $
4     #
5     # Copyright 2006 Cory Omand <comand@blastwave.org>
6     # All rights reserved. Use is subject to license terms.
7     #
8     # Redistribution and/or use, with or without modification, is
9     # permitted. This software is without warranty of any kind. The
10     # author(s) shall not be liable in the event that use of the
11     # software causes damage.
12     #
13     # depgraph - draw a 'dot' graph showing GAR package interdependencies
14     #
15    
16     use strict;
17    
18     my ($graph_all, $output_dot) = (0, 0);
19     foreach my $arg (@ARGV) {
20     $graph_all = 1 if $arg eq '-all';
21     $output_dot = 1 if $arg eq '-dot';
22     }
23    
24     my $dot = "dot";
25     $dot .= " -Earrowhead=dot -Edot_radius=0.5 -Earrowtail=none";
26     $dot .= " -Nshape=diamond -Nfontsize=12";
27     $dot .= " -Tpng";
28    
29     sub makeDigraph {
30     my ($name, @makefiles) = @_;
31    
32     printf STDERR " %12s ... ", $name;
33    
34     if (@makefiles) {
35     my $device;
36     if ($output_dot) {
37     $device = \*STDOUT;
38     } else {
39     open DOT, "| $dot -o $name.png" or die "Failed to open PNG stream: $!";
40     $device = \*DOT;
41     }
42    
43     print $device "digraph sunx {\n";
44    
45     foreach my $makefile (@makefiles) {
46     open FH, $makefile or die "Failed to open $makefile: $!\n";
47     my @lines = <FH>;
48     close FH;
49    
50     my ($garname, @deps);
51     foreach (@lines) {
52     if (/^NAME\s*=\s*(\S*)\s*$/) {
53     $garname = $1;
54     next;
55     }
56     if (/^(?:DEPENDS|LIBDEPS)\s*\+?=\s*(.+)$/) {
57     push @deps, split /\s+/, $1;
58     next;
59     }
60     }
61    
62     foreach (@deps) {
63     my ($dummy, $depname) = split '/', $_;
64     print $device qq{"$garname" -> "$depname"\n};
65     }
66     }
67     print $device "}\n";
68     close $device;
69    
70     print STDERR "ok\n";
71    
72     } else {
73     print STDERR "nothing to do\n";
74     }
75     }
76    
77     print STDERR "\nCreating digraphs:\n\n";
78    
79     if ($graph_all) {
80     foreach my $subdir (`gfind -type d -mindepth 1 -maxdepth 1 -not -name meta`) {
81     chomp $subdir; $subdir =~ s/^\.\///;
82     makeDigraph "sunx_$subdir", `gfind $subdir -type f -mindepth 2 -maxdepth 2 -name Makefile`;
83     }
84     }
85    
86     makeDigraph "sunx_all", `gfind . -type f -mindepth 3 -maxdepth 3 -name Makefile | grep -v ./meta`;
87    
88     print STDERR "\nComplete.\n\n";

Properties

Name Value
svn:executable *