Linux Audio

Check our new training course

Loading...
Note: File does not exist in v4.6.
 1#!/usr/bin/perl
 2
 3my %include = ();
 4my %included = ();
 5
 6for my $text (<*.txt>) {
 7    open I, '<', $text || die "cannot read: $text";
 8    while (<I>) {
 9	if (/^include::/) {
10	    chomp;
11	    s/^include::\s*//;
12	    s/\[\]//;
13	    $include{$text}{$_} = 1;
14	    $included{$_} = 1;
15	}
16    }
17    close I;
18}
19
20# Do we care about chained includes???
21my $changed = 1;
22while ($changed) {
23    $changed = 0;
24    while (my ($text, $included) = each %include) {
25	for my $i (keys %$included) {
26	    # $text has include::$i; if $i includes $j
27	    # $text indirectly includes $j.
28	    if (exists $include{$i}) {
29		for my $j (keys %{$include{$i}}) {
30		    if (!exists $include{$text}{$j}) {
31			$include{$text}{$j} = 1;
32			$included{$j} = 1;
33			$changed = 1;
34		    }
35		}
36	    }
37	}
38    }
39}
40
41while (my ($text, $included) = each %include) {
42    if (! exists $included{$text} &&
43	(my $base = $text) =~ s/\.txt$//) {
44	print "$base.html $base.xml : ", join(" ", keys %$included), "\n";
45    }
46}