our $alioth_git = "git+ssh://$aliothname/$aliothpath";
our $alioth_sshtestbodge = [$aliothname,$aliothpath];
+our %format_ok = map { $_=>1 } ("1.0","3.0 (native)","3.0 (quilt)");
+
our (@git) = qw(git);
our (@dget) = qw(dget);
our (@dput) = qw(dput);
$dsc->parse($dscfh, 'dsc') or die "parsing of $dscurl failed\n";
print DEBUG Dumper($dsc);
my $fmt = $dsc->{Format};
- die "unsupported format $fmt, sorry\n" unless $fmt eq '1.0';
+ die "unsupported format $fmt, sorry\n" unless $format_ok{$fmt};
}
sub check_for_git () {
sub is_orig_file ($) {
local ($_) = @_;
- m/\.orig\.tar\.\w+$/;
+ m/\.orig(?:-\w+)?\.tar\.\w+$/;
}
sub generate_commit_from_dsc () {
}
}
-sub clone () {
+sub clone ($) {
+ my ($dstdir) = @_;
die "dry run makes no sense with clone" if $dryrun;
get_archive_dsc();
$dsc_hash = $dsc->{$ourdscfield};
} else {
print "last upload to archive has NO git hash\n";
}
- my $dstdir = "$package";
my $branch = uploadbranch();
if (check_for_git()) {
print "cloning existing git history\n";
}
sub cmd_clone {
+ my $dstdir;
if (@ARGV==1) {
($package) = @ARGV;
- } elsif (@ARGV==2) {
+ } elsif (@ARGV==2 && $ARGV[1] =~ m#^\w#) {
($package,$suite) = @ARGV;
+ } elsif (@ARGV==2 && $ARGV[1] =~ m#^[./]#) {
+ ($package,$dstdir) = @ARGV;
+ } elsif (@ARGV==3) {
+ ($package,$suite,$dstdir) = @ARGV;
} else {
die;
}
- clone();
+ $dstdir ||= "$package";
+ clone($dstdir);
}
sub branchsuite () {