author | William Roberts <williamr@symbian.org> |
Mon, 01 Jun 2009 15:26:59 +0100 | |
changeset 2 | a600c1a596f7 |
child 3 | 8b87ea768cb8 |
permissions | -rw-r--r-- |
2
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
1 |
#!/usr/bin/perl |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
2 |
|
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
3 |
# Copyright (c) 2009 Symbian Foundation Ltd |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
4 |
# This component and the accompanying materials are made available |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
5 |
# under the terms of the License "Eclipse Public License v1.0" |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
6 |
# which accompanies this distribution, and is available |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
7 |
# at the URL "http://www.eclipse.org/legal/epl-v10.html". |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
8 |
# |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
9 |
# Initial Contributors: |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
10 |
# Symbian Foundation Ltd - initial contribution. |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
11 |
# |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
12 |
# Contributors: |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
13 |
# |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
14 |
# Description: |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
15 |
# Identify "Public APIs" - defined as |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
16 |
# 1. Files in epoc32\include which are not in epoc32\include\platform, |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
17 |
# 2. And contain either no Symbian API classification doxygen tags (Public by export) |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
18 |
# 3. Or contain @publishedAll (Public by tag - now deprecated) |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
19 |
|
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
20 |
use strict; |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
21 |
my $debug = 0; |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
22 |
|
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
23 |
sub is_public_api($$) |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
24 |
{ |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
25 |
my ($file,$name) = @_; |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
26 |
|
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
27 |
if ($name =~ /^epoc32\/include\/platform\//) |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
28 |
{ |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
29 |
# /epoc32/include/platform files are "Platform by export" |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
30 |
return 0; # Not public |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
31 |
} |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
32 |
|
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
33 |
open FILE, "<$file" or print "ERROR: Cannot open $file: $!\n" and return 1; # assume Public |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
34 |
my @lines = <FILE>; # they are all of a modest size |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
35 |
close FILE; |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
36 |
|
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
37 |
my @apitaglines = grep /\@published|\@internal/, @lines; |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
38 |
if (scalar @apitaglines == 0) |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
39 |
{ |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
40 |
# no API classification tags - must be "Public by export" |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
41 |
return 1; # Public API |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
42 |
} |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
43 |
|
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
44 |
if ($debug) |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
45 |
{ |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
46 |
print join("\n\t", $file, @apitaglines), "\n"; |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
47 |
} |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
48 |
my @publishedAll = grep /\@publishedAll/, @apitaglines; |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
49 |
if (scalar @publishedAll == 0) |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
50 |
{ |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
51 |
# the API classification tags are all @publishedPartner or @internal |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
52 |
return 0; # not public |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
53 |
} |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
54 |
# contains at least one @publishedAll element - must be "Public by tag" |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
55 |
return 1; # Public API |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
56 |
} |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
57 |
|
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
58 |
sub scan_directory($$) |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
59 |
{ |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
60 |
my ($path, $name) = @_; |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
61 |
|
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
62 |
opendir DIR, $path; |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
63 |
my @files = grep !/^\.\.?$/, readdir DIR; |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
64 |
closedir DIR; |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
65 |
|
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
66 |
foreach my $file (@files) |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
67 |
{ |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
68 |
my $newpath = "$path/$file"; |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
69 |
my $newname = "$name/$file"; |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
70 |
|
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
71 |
if (-d $newpath) |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
72 |
{ |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
73 |
scan_directory($newpath, $newname); |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
74 |
next; |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
75 |
} |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
76 |
|
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
77 |
if (is_public_api($newpath,$newname)) |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
78 |
{ |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
79 |
print "$newname\n"; |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
80 |
} |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
81 |
else |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
82 |
{ |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
83 |
# print "PARTNER\t$newname\n"; |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
84 |
} |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
85 |
} |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
86 |
} |
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
87 |
|
a600c1a596f7
Create "williamr" directory in utilities, and add an assortment of Perl scripts
William Roberts <williamr@symbian.org>
parents:
diff
changeset
|
88 |
scan_directory("/epoc32/include", "epoc32/include"); |