office-gobmx/solenv/bin/hicontrast-to-theme.pl

126 lines
4.3 KiB
Perl
Raw Normal View History

:
eval 'exec perl -S $0 ${1+"$@"}'
if 0;
#*************************************************************************
#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# Copyright 2000, 2010 Oracle and/or its affiliates.
#
# OpenOffice.org - a multi-platform office productivity suite
#
# This file is part of OpenOffice.org.
#
# OpenOffice.org is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License version 3
# only, as published by the Free Software Foundation.
#
# OpenOffice.org is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Lesser General Public License version 3 for more details
# (a copy is included in the LICENSE file that accompanied this code).
#
# You should have received a copy of the GNU Lesser General Public License
# version 3 along with OpenOffice.org. If not, see
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
#
#*************************************************************************
#
# Create ordinary theme from HiContrast images.
#
use File::Copy;
use File::Find;
use File::Path;
use File::Spec;
( $src, $dst ) = @ARGV;
if ( $src eq "" || $dst eq "" ) {
print STDERR "Usage: hicontrast-to-theme.pl src dest\n\n";
print STDERR "Create ordinary theme from HiContrast images.\n";
exit 1;
}
$dst = File::Spec->rel2abs( $dst );
@hc_table = (
[ ".*_h.png", "_h.png", ".png" ],
[ ".*_sch.png", "_sch.png", ".png" ],
[ ".*_hc.png", "_hc.png", ".png" ],
[ "lch_.*.png", "lch_", "lc_" ],
[ "sch_.*.png", "sch_", "sc_" ],
[ "lch[0-9].*.png", "lch", "lc" ],
[ "sch[0-9].*.png", "sch", "sc" ],
[ "loh[0-9].*.png", "loh", "lo" ],
[ "lxh[0-9].*.png", "lxh", "lx" ],
[ "sxh[0-9].*.png", "sxh", "sx" ],
[ "avh[0-9].*.png", "avh", "av" ],
[ "avlh[0-9].*.png", "avlh", "avl" ],
[ "idh[0-9].*.png", "idh", "id" ],
[ "imh[0-9].*.png", "imh", "im" ],
[ "mih[0-9].*.png", "mih", "mi" ],
[ "tbh[0-9].*.png", "tbh", "tb" ],
[ "nah[0-9].*.png", "nah", "na" ],
[ "nch[0-9].*.png", "nch", "nc" ],
[ "nvh[0-9].*.png", "nvh", "nv" ],
[ "ouh[0-9].*.png", "ouh", "ou" ],
[ "ddh[0-9].*.png", "ddh", "dd" ],
[ "sfh[0-9].*.png", "sfh", "sf" ],
[ "srh[0-9].*.png", "srh", "sr" ],
[ "wrh[0-9].*.png", "wrh", "wr" ],
[ "alh[0-9].*.png", "alh", "al" ],
[ "ath[0-9].*.png", "ath", "at" ],
[ "bih[0-9].*.png", "bih", "bi" ],
[ "coh[0-9].*.png", "coh", "co" ],
[ "foh[0-9].*.png", "foh", "fo" ],
[ "fuh[0-9].*.png", "fuh", "fu" ],
[ "oph[0-9].*.png", "oph", "op" ],
[ "unh[0-9].*.png", "unh", "un" ],
[ "edh[0-9].*.png", "edh", "ed" ],
[ "cdh[0-9].*.png", "cdh", "cd" ],
[ "frh[0-9].*.png", "frh", "fr" ],
[ "fwh[0-9].*.png", "fwh", "fw" ],
[ "nuh[0-9].*.png", "nuh", "nu" ],
[ "prh[0-9].*.png", "prh", "pr" ],
[ "shh[0-9].*.png", "shh", "sh" ],
[ "trh[0-9].*.png", "trh", "tr" ],
[ "reh[0-9].*.png", "reh", "re" ],
[ "joh[0-9].*.png", "joh", "jo" ],
[ "fph[0-9].*.png", "fph", "fp" ],
[ "dah[0-9].*.png", "dah", "da" ]
);
my (@from_stat, @to_stat);
sub copy_normalized {
$file = $_;
for $hc ( @hc_table ) {
( $what, $from, $to ) = @$hc;
2008-10-06 08:24:25 -05:00
if ( $file =~ /$what/&&!($file=~/\.svn/) ) {
my $dir = File::Spec->catdir( $dst, $File::Find::dir );
if ( ! -d $dir ) {
mkpath( $dir );
}
( my $copy = $file ) =~ s/$from/$to/;
$copy = File::Spec->catfile( $dir, $copy );
@from_stat = stat($file);
@to_stat = stat($copy);
if ( $from_stat[9] > $to_stat[9] ) {
copy( $file, $copy ) || die $!;
utime( $from_stat[9], $from_stat[9], $copy );
}
last;
}
}
}
chdir( $src );
find( \&copy_normalized, '.' );