#!/usr/bin/perl require "build_config.pl"; require "build.pl"; $f_rdf = "install/install.rdf"; $f_lang = "locale/en-AU/netusagebtn.dtd"; $f_js = "install/install.js"; # get current version $vr = getfilestr($f_rdf); # get current revision $rev = getcurrentrev(); if($vr =~ s/([0-9]+)\.([0-9]+)<\/em:version>//) { $ver = "$1.$2"; } else { die "Can't get version from $f_rdf"; } $def = $ver; sub getnextver { $def3 = $3 + 1; $def2 = $2; $def1 = $1; if ($def3 > 9) { $def3 = 0; $def2++; } if ($def2 > 9) { $def2 = 0; $def1++; } return "$def1$def2$def3"; } #print "Current version is $ver.$rev\n"; #print "Please enter version [$def]: "; #$s = ; #chomp($s); #if (!$s) { # $s = $def; # exit; #} #if ($s eq 'i') { # $s = getnextver(); #} #$newver = substr($s, 0, 1).'.'.substr($s, 1, 1).'.'.$rev; $newver = "$ver.$rev"; sub subverfile { my ( $f ) = @_; my $fc = getfilestr($f); # if(!($fc =~ s/$ver/$newver/)) { if (!($fc =~ s/.+?<\/em:version>/$newver<\/em:version>/)) { print "Replace ERROR in file: $f"; } setfilestr("$f.new", $fc); } subverfile($f_rdf); print "Version is now: $newver"; if (! -e "install_temp") { `mkdir install_temp`; } `mv install/install.rdf.new install_temp/install.rdf`; `cp install/chrome.manifest install_temp/chrome.manifest`; `7za a -tzip netusageitem.jar content skin locale -xr0!*\CVS* -xr0!*\.svn* -xr0!*Thumbs.db* -xr0!*cvsignore* -xr0!*.lnk -mx0`; `mkdir install_temp/chrome`; `mv netusageitem.jar install_temp/chrome`; #`compilexpcom.bat`; compilexpt("public", "nsINetUsageItem"); compilexpt("public", "nsINetUsageSvc"); `mkdir install_temp/components`; `mv "public/nsINetUsageItem.xpt" "install_temp/components"`; `mv "public/nsINetUsageSvc.xpt" "install_temp/components"`; `cp js/*.js install_temp/components`; `mkdir -p install_temp/defaults/preferences`; setfilestr( "install_temp/defaults/preferences/nu_isps_prefs.js" , "\npref(\"extensions.netusage.isps.au\", \"Australia\");\npref(\"extensions.netusage.skins.default\", \"Default\");\n" ); $s = getfilestr("install_temp/install.rdf"); if($s =~ s/version>([0-9]+)\.([0-9]+)\.([0-9]+)(?:\.([0-9]+)|<)//) { if ($4 eq "1") { $ver = "$1$2r$3m"; } else { $ver = "$1$2r$3"; } print `cd install_temp && 7za a -tzip ../netusagebtn$ver.xpi . && cd ..`; } else { die "install.rdf mismatch\n"; } `rm -rf install_temp/*`;