our (@dget) = qw(dget);
our (@dput) = qw(dput);
our (@debsign) = qw(debsign);
-our (@cleancmd) = qw(debian/rules clean);
our $keyid;
our $debug = 0;
}
sub check_not_dirty () {
- my $output = cmdoutput @git, qw(status --porcelain);
- if (length $output) {
- my $m = "tree dirty:\n$output\n";
- if (!$dryrun) {
- die $m;
- } else {
- warn $m;
- }
- }
+ runcmd @git, qw(diff --quiet);
}
-sub commit_quilty_patch () {
+sub commit_quilty_patch ($) {
+ my ($vsn) = @_;
my $output = cmdoutput @git, qw(status --porcelain);
- my $vsn = $dsc->{Version};
my %fixups = map {$_=>1}
- (".pc/debian-changes-$vsn/","debian/patches/debian-changes-2.8-5");
+ (".pc/debian-changes-$vsn/","debian/patches/debian-changes-$vsn");
my @files;
foreach my $l (split /\n/, $output) {
next unless $l =~ s/^\?\? //;
}
print DEBUG "checking for quilty\n", Dumper(\@files);
if (@files == 2) {
+ my $m = "Commit Debian 3.0 (quilt) metadata";
+ print "$m\n";
runcmd_ordryrun @git, qw(add), @files;
- runcmd_ordryrun
- @git, qw(commit -m), "Commit Debian 3.0 (quilt) metadata";
+ runcmd_ordryrun @git, qw(commit -m), $m;
}
}
sub dopush () {
print DEBUG "actually entering push\n";
- runcmd @cleancmd;
my $clogp = parsechangelog();
$package = $clogp->{Source};
my $dscfn = "${package}_$clogp->{Version}.dsc";
$dsc = parsecontrol("../$dscfn");
print DEBUG "format $dsc->{Format}\n";
if ($dsc->{Format} eq '3.0 (quilt)') {
- commit_quilty_patch();
+ print "Format \`$dsc->{Format}', urgh\n";
+ commit_quilty_patch($dsc->{Version});
}
check_not_dirty();
prep_ud();
@ARGV;
}
+sub cmd_quilt_fixup {
+ my $clogp = parsechangelog();
+ commit_quilty_patch($clogp->{Version});
+}
+
sub parseopts () {
my $om;
while (@ARGV) {
push @$om, $2;
} elsif (m/^--existing-package=(.*)/s) {
$existing_package = $1;
- } elsif (m/^--clean-command=(.*)/s) {
- @cleancmd = split /\s+/, $1;
} else {
die "$_ ?";
}
print STDERR "DRY RUN ONLY\n" if $dryrun;
die unless @ARGV;
my $cmd = shift @ARGV;
-
+$cmd =~ y/-/_/;
{ no strict qw(refs); &{"cmd_$cmd"}(); }