Bug 26265: (QA follow-up) Remove g option from regex, add few dirs
[koha-equinox.git] / debian / build-git-snapshot
index cd0545a..cedddae 100755 (executable)
@@ -4,38 +4,39 @@
 #
 # This file is part of Koha.
 #
-# Koha is free software; you can redistribute it and/or modify it under the
-# terms of the GNU General Public License as published by the Free Software
-# Foundation; either version 2 of the License, or (at your option) any later
-# version.
+# Koha is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 #
-# Koha 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 General Public License for more details.
+# Koha 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 General Public License for more details.
 #
-# You should have received a copy of the GNU General Public License along
-# with Koha; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+# You should have received a copy of the GNU General Public License
+# along with Koha; if not, see <http://www.gnu.org/licenses>.
 
 # Written by Robin Sheat <robin@catalyst.net.nz> and
 #   Srdjan Jankovic <srdjan@catalyst.net.nz>
 # Based on an sh version by Lars Wirzenius.
 
-use strict;
-use warnings;
+use Modern::Perl;
 
-use Getopt::Long;
+use Getopt::Long qw(:config no_ignore_case);
 use POSIX qw/strftime/;
 
+my $basetgz;
 my $buildresult;
 my $distribution='squeeze-dev';
 my $git_checks='all';
-my $version='3.5-1~git';
+my $version='16.06~git';
 my $auto_version=1;
 my $need_help;
 my $debug;
 
 GetOptions(
+    'basetgz|b=s'      => \$basetgz,
     'buildresult|r=s'   => \$buildresult,
     'distribution|D=s'  => \$distribution,
     'git-checks|g=s'    => \$git_checks,
@@ -58,6 +59,13 @@ sub sys_command_output {
     return map { chomp; $_ } <$command_output>;
 }
 
+sub sys_command_output_screen {
+    my ($command) = @_;
+
+    print "$command\n" if $debug;
+    system($command) == 0 or die "Command '$command' returns an error ($?)\n";
+}
+
 sub everything_is_committed {
     my $filter;
     for ($git_checks) {
@@ -101,7 +109,7 @@ Options:
         tracked files with untracked changes will cause an error), and 'none'
         (checking git status is skipped totally.) Default is 'all'.
     --version, -v
-        the version string for the resulting package. Default is '3.5-1~git'.
+        the version string for the resulting package. Default is '$version'.
     --(no)autoversion
         whether or not to use the date and git commit ID in the version value.
         Default is to include it.
@@ -116,6 +124,8 @@ sub latest_sha1 {
 
 sub adjust_debian_changelog {
     my ($newversion) = @_;
+    # debian revision
+    $newversion .= "-1";
 
     sys_command_output( qq{dch --force-distribution -D "$distribution" -v "$newversion" "Building git snapshot."} );
     sys_command_output( qq{dch -r "Building git snapshot."} );
@@ -127,10 +137,11 @@ sub reset_debian_changelog {
 
 sub build_package {
     my ($newversion) = @_;
-    sys_command_output( qq{git archive --format=tar --prefix="koha-$newversion/" HEAD | gzip -9 > "../koha_$newversion.tar.gz"} );
+    sys_command_output( qq{git archive --format=tar --prefix="koha-$newversion/" HEAD | gzip -9 > "../koha_$newversion.orig.tar.gz"} );
 
     my $pdebuildopts = $buildresult ? "--buildresult $buildresult" : "";
-    sys_command_output( "pdebuild $pdebuildopts" );
+    my $pdebuildbasetgz = $basetgz ? "-- --basetgz /var/cache/pbuilder/" . $basetgz . ".tgz" : "";
+    sys_command_output_screen( "pdebuild $pdebuildbasetgz $pdebuildopts" );
 }
 
 everything_is_committed() or die "cannot build: uncommited changes";