chiark / gitweb /
canon etc. fixes
[dgit.git] / dgit
diff --git a/dgit b/dgit
index 1fd15d73ae63bedd54959abf82401310a3b1f8a6..b25c4a3d9ce558007c80321bbc7b31a88a78b040 100755 (executable)
--- a/dgit
+++ b/dgit
@@ -33,6 +33,7 @@ our $sign = 1;
 our $dryrun = 0;
 our $changesfile;
 our $new_package = 0;
+our $existing_package = 'dpkg';
 
 our %format_ok = map { $_=>1 } ("1.0","3.0 (native)","3.0 (quilt)");
 
@@ -245,7 +246,7 @@ sub archive_query () {
 }
 
 sub canonicalise_suite () {
-    archive_query();
+    archive_query() or die;
 }
 
 sub get_archive_dsc () {
@@ -576,6 +577,7 @@ sub dopush () {
 }
 
 sub cmd_clone {
+    parseopts();
     my $dstdir;
     die if defined $package;
     if (@ARGV==1) {
@@ -625,23 +627,26 @@ sub fetchpullargs () {
 }
 
 sub cmd_fetch {
+    parseopts();
     fetchpullargs();
     fetch();
 }
 
 sub cmd_pull {
+    parseopts();
     fetchpullargs();
     pull();
 }
 
 sub cmd_push {
+    parseopts();
     die if defined $package;
     my $clogp = parsechangelog();
     $package = $clogp->{Source};
     if (@ARGV==0) {
        $suite = $clogp->{Distribution};
        if ($new_package) {
-           local ($package) = 'dpkg';
+           local ($package) = $existing_package; # this is a hack
            canonicalise_suite();
        }
     } else {
@@ -656,15 +661,16 @@ sub cmd_push {
 }
 
 sub cmd_build {
+    # we pass further options and args to git-buildpackage
     die if defined $package;
     my $clogp = parsechangelog();
     $suite = $clogp->{Distribution};
     $package = $clogp->{Source};
-    canonicalise_suite();
     runcmd_ordryrun
        qw(git-buildpackage -us -uc --git-no-sign-tags),
-            "--git-debian-branch=".lbranch(),
-            @ARGV;
+       '--git-builder=dpkg-buildpackage -i\.git/ -I.git',
+       "--git-debian-branch=".lbranch(),
+       @ARGV;
 }
 
 sub parseopts () {
@@ -684,6 +690,8 @@ sub parseopts () {
                $om->[0] = $2;
            } elsif (m/^--(\w+):(.*)/s && ($om = $opts_opt_map{$1})) {
                push @$om, $2;
+           } elsif (m/^--existing-package=(.*)/s) {
+               $existing_package = $1;
            } else {
                die "$_ ?";
            }
@@ -713,6 +721,5 @@ sub parseopts () {
 parseopts();
 die unless @ARGV;
 my $cmd = shift @ARGV;
-parseopts();
 
 { no strict qw(refs); &{"cmd_$cmd"}(); }