#!/usr/bin/perl # __________ __ ___. # Open \______ \ ____ ____ | | _\_ |__ _______ ___ # Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / # Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < # Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ # \/ \/ \/ \/ \/ # $Id: wpsbuild.pl 24813 2010-02-21 19:10:57Z kugel $ # # usage: updatetheme.pl theme.zip workingdir [options passed to skinupdater] use File::Basename; $numArgs = $#ARGV + 1; die "usage: updatetheme.pl theme.zip workingdir [options passed to skinupdater]" if ($numArgs < 2); $ARGV[0] =~ /.*\/(.*).(zip|ZIP)/; #fix this regex! $theme_name = $1; $tmp = $ARGV[1]; $outdir = "$tmp/$theme_name"; if ($numArgs > 2) { $args = $ARGV[2]; } else { $args = ""; } system("mkdir $outdir") and die "couldnt mkdir $outdir"; # step 1, unzip the theme zip system("unzip $ARGV[0] -d $outdir") and die; #for each skin in the zip run skinupdater @files = `find $outdir -iname "*.wps" -o -iname "*.sbs" -o -iname "*.fms" -o -iname "*.rwps" -o -iname "*.rsbs" -o -iname "*.rfms"`; `touch $tmp/theme_name.diff`; foreach (@files) { chomp($_); $file = $_; $out = "$tmp/" . `basename $file`; chomp($out); `./skinupdater $args $file $out`; `diff -u $file $out >> $tmp/$theme_name.diff`; `mv $out $file`; } `cd $outdir && zip -r $tmp/$theme_name.zip .`; system("rm -Rf $outdir");