Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
Convert git-send-email to use Git.pm
author
Petr Baudis
<pasky@suse.cz>
Mon, 3 Jul 2006 20:47:58 +0000
(22:47 +0200)
committer
Junio C Hamano
<junkio@cox.net>
Tue, 4 Jul 2006 01:35:21 +0000
(18:35 -0700)
Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Junio C Hamano <junkio@cox.net>
git-send-email.perl
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
dc2613d
)
diff --git
a/git-send-email.perl
b/git-send-email.perl
index c5d9e733512ddd4d266c85d4f5cdec4a7d74fa56..e794e4492551fe5eaad60950ee74fa94ef01eca6 100755
(executable)
--- a/
git-send-email.perl
+++ b/
git-send-email.perl
@@
-21,6
+21,7
@@
use Term::ReadLine;
use Getopt::Long;
use Data::Dumper;
use Term::ReadLine;
use Getopt::Long;
use Data::Dumper;
+use Git;
# most mail servers generate the Date: header, but not all...
$ENV{LC_ALL} = 'C';
# most mail servers generate the Date: header, but not all...
$ENV{LC_ALL} = 'C';
@@
-46,6
+47,8
@@
# Example reply to:
#$initial_reply_to = ''; #<20050203173208.GA23964@foobar.com>';
# Example reply to:
#$initial_reply_to = ''; #<20050203173208.GA23964@foobar.com>';
+my $repo = Git->repository();
+
my $term = new Term::ReadLine 'git-send-email';
# Begin by accumulating all the variables (defined above), that we will end up
my $term = new Term::ReadLine 'git-send-email';
# Begin by accumulating all the variables (defined above), that we will end up
@@
-81,23
+84,9
@@
# Now, let's fill any that aren't set in with defaults:
# Now, let's fill any that aren't set in with defaults:
-sub gitvar {
- my ($var) = @_;
- my $fh;
- my $pid = open($fh, '-|');
- die "$!" unless defined $pid;
- if (!$pid) {
- exec('git-var', $var) or die "$!";
- }
- my ($val) = <$fh>;
- close $fh or die "$!";
- chomp($val);
- return $val;
-}
-
sub gitvar_ident {
my ($name) = @_;
sub gitvar_ident {
my ($name) = @_;
- my $val =
gitvar(
$name);
+ my $val =
$repo->command('var',
$name);
my @field = split(/\s+/, $val);
return join(' ', @field[0...(@field-3)]);
}
my @field = split(/\s+/, $val);
return join(' ', @field[0...(@field-3)]);
}
@@
-106,8
+95,8
@@
sub gitvar_ident {
my ($committer) = gitvar_ident('GIT_COMMITTER_IDENT');
my %aliases;
my ($committer) = gitvar_ident('GIT_COMMITTER_IDENT');
my %aliases;
-
chomp(my @alias_files = `git-repo-config --get-all sendemail.aliasesfile`
);
-
chomp(my $aliasfiletype = `git-repo-config sendemail.aliasfiletype`
);
+
my @alias_files = $repo->config('sendemail.aliasesfile'
);
+
my $aliasfiletype = $repo->config('sendemail.aliasfiletype'
);
my %parse_alias = (
# multiline formats can be supported in the future
mutt => sub { my $fh = shift; while (<$fh>) {
my %parse_alias = (
# multiline formats can be supported in the future
mutt => sub { my $fh = shift; while (<$fh>) {
@@
-132,7
+121,7
@@
sub gitvar_ident {
}}}
);
}}}
);
-if (@alias_files
&&
defined $parse_alias{$aliasfiletype}) {
+if (@alias_files
and $aliasfiletype and
defined $parse_alias{$aliasfiletype}) {
foreach my $file (@alias_files) {
open my $fh, '<', $file or die "opening $file: $!\n";
$parse_alias{$aliasfiletype}->($fh);
foreach my $file (@alias_files) {
open my $fh, '<', $file or die "opening $file: $!\n";
$parse_alias{$aliasfiletype}->($fh);
@@
-374,10
+363,7
@@
sub send_message
my $date = strftime('%a, %d %b %Y %H:%M:%S %z', localtime($time++));
my $gitversion = '@@GIT_VERSION@@';
if ($gitversion =~ m/..GIT_VERSION../) {
my $date = strftime('%a, %d %b %Y %H:%M:%S %z', localtime($time++));
my $gitversion = '@@GIT_VERSION@@';
if ($gitversion =~ m/..GIT_VERSION../) {
- $gitversion = `git --version`;
- chomp $gitversion;
- # keep only what's after the last space
- $gitversion =~ s/^.* //;
+ $gitversion = Git::version();
}
my $header = "From: $from
}
my $header = "From: $from