diff options
author | Eric Wong <normalperson@yhbt.net> | 2005-11-23 23:47:39 -0800 |
---|---|---|
committer | Martin Langhoff <martin@catalyst.net.nz> | 2005-12-11 14:41:39 +1300 |
commit | 2777ef76be7174f698b3f53cc4ff38b4118de320 (patch) | |
tree | c40555d0064c7c51aa673fdb425156994d50ddb1 | |
parent | Link Everyday GIT to main documentation tree. (diff) | |
download | tgif-2777ef76be7174f698b3f53cc4ff38b4118de320.tar.xz |
archimport: first, make sure it still compiles
(ML: And introduce safe_pipe_capture())
Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Martin Langhoff <martin@catalyst.net.nz>
-rwxr-xr-x | git-archimport.perl | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/git-archimport.perl b/git-archimport.perl index c3bed08086..b5f8a2c64b 100755 --- a/git-archimport.perl +++ b/git-archimport.perl @@ -99,6 +99,7 @@ my %psets = (); # the collection, by name my %rptags = (); # my reverse private tags # to map a SHA1 to a commitid +my $TLA = $ENV{'ARCH_CLIENT'} || 'tla'; foreach my $root (@arch_roots) { my ($arepo, $abranch) = split(m!/!, $root); @@ -850,3 +851,18 @@ sub commitid2pset { || (print Dumper(sort keys %psets)) && die "Cannot find patchset for $name"; return $ps; } + +# an alterative to `command` that allows input to be passed as an array +# to work around shell problems with weird characters in arguments +sub safe_pipe_capture { + my @output; + if (my $pid = open my $child, '-|') { + @output = (<$child>); + close $child or die join(' ',@_).": $! $?"; + } else { + exec(@_) or die $?; # exec() can fail the executable can't be found + } + return wantarray ? @output : join('',@output); +} + + |