From 3f93d55e1ee34f82f041fd9ebe5c30f2bf5f086e Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Fri, 16 Aug 2013 13:23:42 +0100 Subject: fix dstdir --- TODO | 2 -- dgit | 14 ++++++++++---- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/TODO b/TODO index 6f8d970..c82759d 100644 --- a/TODO +++ b/TODO @@ -1,5 +1,3 @@ -clone support for output dir spec. - config for repo locations push should push to dgit remote (other branches) 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 () { -- cgit v1.2.3