]> code.delx.au - comingnext/blob - build.pl
updated version info for next release
[comingnext] / build.pl
1 #!/usr/bin/perl
2
3 my $version = "1.26";
4
5 use warnings;
6 use strict;
7 use File::Copy;
8 use File::Find;
9 use File::Path;
10 use Archive::Zip qw( :ERROR_CODES );
11
12 # cleanup
13 unlink <*.wgz>;
14 unlink <*.zip>;
15 rmtree("ComingNextB");
16
17 # update version info
18 sed("comingNext/index.html", 'var version = \"(.*?)\";', 'var version = \"'.$version.'\";');
19 sed("comingNext/Info.plist", '<key>DisplayName<\/key>(\s*?)<string>Coming Next (.*?)<\/string>', '<key>DisplayName<\/key>$1<string>Coming Next '.$version.'<\/string>');
20 sed("comingNext/Info.plist", '<key>Version<\/key>(\s*?)<string>(.*?)<\/string>', '<key>Version<\/key>$1<string>'.$version.'<\/string>');
21
22 # add additional widget
23 copyrecursive("comingNext", "comingNextB");
24 sed("comingNextB/index.html", 'var panelNum = 0;', 'var panelNum = 1;');
25 sed("comingNextB/Info.plist", '<key>DisplayName<\/key>(\s*?)<string>Coming Next (.*?)<\/string>', '<key>DisplayName<\/key>$1<string>Coming Next B $2<\/string>');
26 sed("comingNextB/Info.plist", '<key>Identifier<\/key>(\s*?)<string>(.*?)<\/string>', '<key>Identifier<\/key>$1<string>$2b<\/string>');
27
28 # package release
29 my $zip = Archive::Zip->new();
30 $zip->addTree("ComingNext", "ComingNext");
31 $zip->writeToFileNamed("comingNext.wgz");
32
33 $zip = Archive::Zip->new();
34 $zip->addTree("ComingNextB", "ComingNextB");
35 $zip->writeToFileNamed("comingNextB.wgz");
36
37 $zip = Archive::Zip->new();
38 $zip->addFile("comingNext.wgz");
39 $zip->addFile("comingNextB.wgz");
40 $zip->addFile("Readme.txt");
41 $zip->addFile("License.txt");
42 $zip->addFile("ComingNext_SkinFetcher_v1.1.sisx");
43 $zip->writeToFileNamed("comingNext_v$version.zip");
44
45 #########################################
46
47 my $copy_source;
48 my $copy_target;
49 sub copyrecursive {
50 my ($source, $target) = @_;
51 $copy_source = $source;
52 $copy_target = $target;
53 find({ wanted => \&copy_files, follow => 1, no_chdir => 1 }, $copy_source );
54 }
55 sub copy_files {
56 my $targetdir = $File::Find::dir;
57 $targetdir =~ s/^$copy_source/$copy_target/o;
58 mkpath( $targetdir ) if not -e $targetdir;
59 my $targetfile = $File::Find::name;
60 $targetfile =~ s/^$copy_source/$copy_target/o;
61 copy($File::Find::name, $targetfile);
62 }
63
64 #########################################
65
66 sub sed {
67 my ($filename, $search, $replace) = @_;
68 system("perl -p -i.bak -e \"s/$search/$replace/;\" $filename");
69 unlink <$filename.bak>;
70 }