summaryrefslogtreecommitdiff
path: root/dgit
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2013-08-16 13:23:42 +0100
committerIan Jackson <ijackson@chiark.greenend.org.uk>2013-08-16 13:23:42 +0100
commit3f93d55e1ee34f82f041fd9ebe5c30f2bf5f086e (patch)
treeee41479f4aa3743f991cd2e713cd70077d653469 /dgit
parentc5093665159d5b56155e5bbd38f127eac816545b (diff)
fix dstdir
Diffstat (limited to 'dgit')
-rwxr-xr-xdgit14
1 files changed, 10 insertions, 4 deletions
diff --git a/dgit b/dgit
index db65aaa..2c4d1bb 100755
--- a/dgit
+++ b/dgit
@@ -372,7 +372,8 @@ sub fetch_from_archive () {
}
}
-sub clone () {
+sub clone ($) {
+ my ($dstdir) = @_;
die "dry run makes no sense with clone" if $dryrun;
get_archive_dsc();
$dsc_hash = $dsc->{$ourdscfield};
@@ -383,7 +384,6 @@ sub clone () {
} 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";
@@ -482,14 +482,20 @@ sub dopush () {
}
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 () {