From a03afb3671de4101ca0a1dc2e34f4045dc1f7af0 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sun, 11 Jan 2015 10:43:22 +0000 Subject: [PATCH] Ssoma::Git: hoist out ensure_sha1 function We repeat the same pattern in multiple places, and will again for the next commit to ensure Subject shows up in the commit message. --- lib/Ssoma/Git.pm | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/lib/Ssoma/Git.pm b/lib/Ssoma/Git.pm index 244d6b3..839d07a 100644 --- a/lib/Ssoma/Git.pm +++ b/lib/Ssoma/Git.pm @@ -117,8 +117,13 @@ sub bidi_sha1 { close $out_0 or die "close out_0 failed: $!\n"; waitpid($pid, 0) or die "waitpid $pid failed: $!\n"; $? == 0 or die "$cmd failed: $?\n"; + ensure_sha1($sha1, $cmd); +} + +sub ensure_sha1 { + my ($sha1, $msg) = @_; chomp $sha1; - $sha1 =~ /\A[a-f0-9]{40}\z/i or die "not a SHA-1: $sha1\n"; + $sha1 =~ /\A[a-f0-9]{40}\z/i or die "not a SHA-1 hex from: $msg\n"; $sha1; } @@ -128,10 +133,7 @@ sub qx_sha1 { my $sha1 = `$str`; die "$str failed: $?\n" if $?; - chomp $sha1; - $sha1 =~ /\A[a-f0-9]{40}\z/i or - die "not a SHA-1 hexdigest from: $str\n"; - $sha1; + ensure_sha1($sha1, $str); } # returns a blob identifier the new message @@ -250,8 +252,8 @@ sub commit_index { $parent = $self->qx_sha1($cmd); } else { $parent = eval { $self->qx_sha1("$cmd 2>/dev/null") }; - if (defined $parent && $parent !~ /\A[a-f0-9]{40}\z/) { - die "$cmd returned bad SHA-1: $parent\n"; + if (defined $parent) { + ensure_sha1($parent, $cmd); } } -- 2.11.4.GIT