3 # Newer ImageMagick's don't like some of the
4 # broken icons OO.o contains.
5 $lc_good = 'res/lc00000.bmp';
6 $sc_good = 'res/sc00000.bmp';
8 # beautiful hard-coding action.
11 'sc/res/imglst/apptbx',
12 'sc/res/imglst/navipi',
14 'sd/res/imagelst/korean',
16 'sw/win/imglst/korean',
48 'sw/win/imglst' => '[sn][cr][0-9]*\.bmp',
49 'sc/res/imglst/navipi' => 'na0.*\.bmp',
50 'res' => '[si][cm][0-9]*\.bmp'
54 printf "Usage: scale-icons </path/to/ooo_checkout> [--quiet] [--backupdir=</path/for/original_bmps>\n";
62 $OOO_PATH = shift (@ARGV);
64 if ($OOO_PATH =~ m/--.*/) {
69 $lc_good = "$OOO_PATH/$lc_good";
70 $sc_good = "$OOO_PATH/$sc_good";
77 if ($a eq '--quiet') {
79 } elsif ($a eq '--remove') {
81 } elsif ($a =~ m/--backupdir=(.*)/) {
87 my $relinstdir = shift;
88 my $small_regex = shift;
89 my $large_regex = shift;
90 my ($dirhandle, $file);
91 my $instdir = "$OOO_PATH/$relinstdir";
92 my $STAMPNAME = "$instdir/ooo-convert-stamp";
95 print "skipping $instdir\n";
100 -f $STAMPNAME || return;
102 -f $STAMPNAME && return;
105 print "Scaling: '$instdir'\n";
107 opendir ($dirhandle, $instdir) || die "can't opendir $instdir: $!";
109 while ($file = readdir ($dirhandle)) {
110 if ($file =~ m/^$small_regex$|^$large_regex$/) {
111 my $src = "$instdir/$file";
112 my $dest = "$src.cnvt";
115 $quiet || print "Remove '$src'\n";
119 $quiet || print "Convert '$src'\n";
121 -f $src || die "Internal error";
123 if ($src =~ /$small_regex/) {
124 if (system ("convert -mattecolor '#c0c0c0' -frame 2x2 -crop 16x16+2+2 $src $dest") != 0) {
125 print "*** Warning: convert failed; trying copy\n";
126 system ("cp -f $sc_good $dest");
128 } elsif ($src =~ /$large_regex/) {
129 if (system ("convert -mattecolor '#c0c0c0' -frame 2x2 -crop 24x24+3+2 $src $dest") != 0) {
130 print "*** Warning: convert failed; trying copy\n";
131 system ("cp -f $lc_good $dest");
135 print $backupdir ? "$backupdir/$relinstdir/$file" : "$src.orig", "\n";
137 $backupdir ? "$backupdir/$relinstdir/$file" : "$src.orig");
138 rename ($dest, $src);
143 closedir ($dirhandle);
146 unlink ("$STAMPNAME");
149 open ($stamphandle, ">$STAMPNAME") || die "Error stamping $STAMPNAME $!";
150 print $stamphandle "Stamp\n";
151 close ($stamphandle);
155 for $a (@scale_dirs) {
157 if (defined ($scale_exceptions{$a})) {
158 $small_regex = $scale_exceptions{$a};
159 print "Exception on '$a' => '$small_regex'\n";
161 $small_regex = 'sc[0-9]*\.bmp';
164 if (system ("mkdir -p $backupdir/$a\n") != 0) {
165 print "*** Warning: could not create $backupdir/$a\n" ;
169 handle_scaled ("$a", $small_regex, 'lc[0-9]*\.bmp');
172 print "Binning dupped icons\n";
173 -f "$OOO_PATH/extras/source/symbols/makefile.mk" || die "No dupped icon directory";
175 system ("mkdir -p $backupdir/extras/source/symbols");
176 system ("cp -a $OOO_PATH/extras/source/symbols/*.bmp $backupdir/extras/source/symbols");
178 system ("rm -f $OOO_PATH/extras/source/symbols/*.bmp");
180 print "Completed cleanly.\n";