Do not parse into 'ilst' atom if size is 0. Fixes playability issue in FS#11916.
[maemo-rb.git] / utils / skinupdater / updatetheme.pl
blob42ef24c7e874ea5ac19f6ac7eca37e099f34a5e4
1 #!/usr/bin/perl
2 # __________ __ ___.
3 # Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 # Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 # Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 # Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 # \/ \/ \/ \/ \/
8 # $Id: wpsbuild.pl 24813 2010-02-21 19:10:57Z kugel $
11 # usage: updatetheme.pl theme.zip workingdir [options passed to skinupdater]
12 use File::Basename;
14 $numArgs = $#ARGV + 1;
16 die "usage: updatetheme.pl theme.zip workingdir [options passed to skinupdater]" if ($numArgs < 2);
18 $ARGV[0] =~ /.*\/(.*).(zip|ZIP)/; #fix this regex!
19 $theme_name = $1;
20 $tmp = $ARGV[1];
21 $outdir = "$tmp/$theme_name";
23 if ($numArgs > 2)
25 $args = $ARGV[2];
26 } else {
27 $args = "";
31 system("mkdir $outdir") and die "couldnt mkdir $outdir";
33 # step 1, unzip the theme zip
34 system("unzip $ARGV[0] -d $outdir") and die;
36 #for each skin in the zip run skinupdater
37 @files = `find $outdir -iname "*.wps" -o -iname "*.sbs" -o -iname "*.fms" -o -iname "*.rwps" -o -iname "*.rsbs" -o -iname "*.rfms"`;
38 `touch $tmp/theme_name.diff`;
39 foreach (@files)
41 chomp($_);
42 $file = $_;
43 $out = "$tmp/" . `basename $file`; chomp($out);
44 `./skinupdater $args $file $out`;
45 `diff -u $file $out >> $tmp/$theme_name.diff`;
46 `mv $out $file`;
49 `cd $outdir && zip -r $tmp/$theme_name.zip .`;
52 system("rm -Rf $outdir");