source: josm/trunk/geticons.pl @ 7669

Last change on this file since 7669 was 7669, checked in by stoecker, 9 years ago

remove two false icon detections

  • Property svn:executable set to *
File size: 3.9 KB
Line 
1#! /usr/bin/perl -w
2# short tool to find out all used icons and allows deleting unused icons
3# when building release files
4
5my @default = (
6  "styles/standard/*.xml",
7  "styles/standard/*.mapcss",
8  "data/*.xml",
9  "src/org/openstreetmap/josm/*.java",
10  "src/org/openstreetmap/josm/*/*.java",
11  "src/org/openstreetmap/josm/*/*/*.java",
12  "src/org/openstreetmap/josm/*/*/*/*.java",
13  "src/org/openstreetmap/josm/*/*/*/*/*.java",
14  "src/org/openstreetmap/josm/*/*/*/*/*/*.java"
15);
16
17my %icons;
18
19my $o = $/;
20
21for my $arg (@ARGV ? @ARGV : @default)
22{
23  for my $file (glob($arg))
24  {
25    open(FILE,"<",$file) or die "Could not open $file\n";
26    #print "Read file $file\n";
27    $/ = $file =~ /\.java$/ ? ";" : $o;
28    my $extends = "";
29    while(my $l = <FILE>)
30    {
31      next if $l =~ /NO-ICON/;
32      if($l =~ /icon\s*[:=]\s*["']([^+]+?)["']/)
33      {
34        ++$icons{$1};
35      }
36
37      if($l =~ /(?:icon-image|repeat-image|fill-image)\s*:\s*\"?(.*?)\"?\s*;/)
38      {
39        my $img = "styles/standard/$1";
40        $img = "styles/$1" if((!-f "images/$img") && -f "images/styles/$1");
41        $img = $1 if((!-f "images/$img") && -f "images/$1");
42        ++$icons{$img};
43      }
44      if($l =~ /ImageProvider\.get\(\"([^\"]*?)\"\)/)
45      {
46        my $i = $1;
47        ++$icons{$i};
48      }
49      while($l =~ /\/\*\s*ICON\s*\*\/\s*\"(.*?)\"/g)
50      {
51        my $i = $1;
52        ++$icons{$i};
53      }
54      while($l =~ /\/\*\s*ICON\((.*?)\)\s*\*\/\s*\"(.*?)\"/g)
55      {
56        my $i = "$1$2";
57        ++$icons{$i};
58      }
59      if($l =~ /new\s+ImageLabel\(\"(.*?)\"/)
60      {
61        my $i = "statusline/$1";
62        ++$icons{$i};
63      }
64      if($l =~ /createPreferenceTab\(\"(.*?)\"/)
65      {
66        my $i = "preferences/$1";
67        ++$icons{$i};
68      }
69      if($l =~ /ImageProvider\.get\(\"(.*?)\",\s*\"(.*?)\"\s*\)/)
70      {
71        my $i = "$1/$2";
72        ++$icons{$i};
73      }
74      if($l =~ /ImageProvider\.overlay\(.*?,\s*\"(.*?)\",/)
75      {
76        my $i = $1;
77        ++$icons{$i};
78      }
79      if($l =~ /getCursor\(\"(.*?)\",\s*\"(.*?)\"/)
80      {
81        my $i = "cursor/modifier/$2";
82        ++$icons{$i};
83        $i = "cursor/$1";
84        ++$icons{$i};
85      }
86      if($l =~ /ImageProvider\.getCursor\(\"(.*?)\",\s*null\)/)
87      {
88        my $i = "cursor/$1";
89        ++$icons{$i};
90      }
91      if($l =~ /SideButton*\(\s*(?:mark)?tr\s*\(\s*\".*?\"\s*\)\s*,\s*\"(.*?)\"/)
92      {
93        my $i = "dialogs/$1";
94        ++$icons{$i};
95      }
96      if($l =~ /super\(\s*tr\(\".*?\"\),\s*\"(.*?)\"/s)
97      {
98        my $i = "$extends$1";
99        ++$icons{$i};
100      }
101      if($l =~ /super\(\s*trc\(\".*?\",\s*\".*?\"\),\s*\"(.*?)\"/s)
102      {
103        my $i = "$extends$1";
104        ++$icons{$i};
105      }
106      if($l =~ /audiotracericon\",\s*\"(.*?)\"/s)
107      {
108        my $i = "markers/$1";
109        ++$icons{$i};
110      }
111      if($l =~ /\"(.*?)\",\s*parentLayer/s)
112      {
113        my $i = "markers/$1";
114        ++$icons{$i};
115      }
116      if($l =~ /\.setButtonIcons.*\{(.*)\}/)
117      {
118        my $t = $1;
119        while($t =~ /\"(.*?)\"/g)
120        {
121          my $i = $1;
122          ++$icons{$i};
123        }
124      }
125      if($l =~ /extends MapMode/)
126      {
127        $extends = "mapmode/";
128      }
129      elsif($l =~ /extends ToggleDialog/)
130      {
131        $extends = "dialogs/";
132      }
133    }
134    close FILE;
135  }
136}
137
138my %haveicons;
139
140for($i = 1; my @ifiles = (glob("images".("/*" x $i).".png"), glob("images".("/*" x $i).".svg")); ++$i)
141{
142  for my $ifile (sort @ifiles)
143  {
144    $ifile =~ s/^images\///;
145    $haveicons{$ifile} = 1;
146  }
147}
148
149for my $img (sort keys %icons)
150{
151  if($img =~ /\.(png|svg)/)
152  {
153    print STDERR "File $img does not exist!\n" if(!-f "images/$img");
154    delete $haveicons{$img};
155  }
156  else
157  {
158    print STDERR "File $img(.svg|.png) does not exist!\n" if(!-f "images/$img.png" && !-f "images/$img.svg");
159    delete $haveicons{"$img.svg"};
160    delete $haveicons{"$img.png"};
161  }
162}
163
164for my $img (sort keys %haveicons)
165{
166  print "$img\n";
167}
Note: See TracBrowser for help on using the repository browser.