summaryrefslogtreecommitdiff
path: root/Debian
diff options
context:
space:
mode:
authorIan Jackson <ijackson@chiark.greenend.org.uk>2018-08-11 21:08:00 +0100
committerIan Jackson <ijackson@chiark.greenend.org.uk>2018-08-12 01:40:29 +0100
commit027613e7a281123f4512ca4c1b99552cc78ca72b (patch)
tree72ad3dfa4a5d4ba2925359d54cd75afac51ae668 /Debian
parent5ad9edffc1e0658f287b45feccbd7c97e0bfd412 (diff)
Dgit.pm: Move make_commit_text from dgit
NFC other than the usual change to literal `git'. Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Diffstat (limited to 'Debian')
-rw-r--r--Debian/Dgit.pm23
1 files changed, 23 insertions, 0 deletions
diff --git a/Debian/Dgit.pm b/Debian/Dgit.pm
index f68b7c9..9d2e471 100644
--- a/Debian/Dgit.pm
+++ b/Debian/Dgit.pm
@@ -57,6 +57,7 @@ BEGIN {
git_for_each_tag_referring is_fast_fwd
git_check_unmodified
git_reflog_action_msg git_update_ref_cmd
+ make_commit_text
$package_re $component_re $deliberately_re
$distro_re $versiontag_re $series_filename_re
$orig_f_comp_re $orig_f_sig_re $orig_f_tail_re
@@ -687,6 +688,28 @@ sub parsechangelog_loop ($$$) {
close CLOGS or $?==SIGPIPE or failedcmd @$clogcmd;
}
+sub make_commit_text ($) {
+ my ($text) = @_;
+ my ($out, $in);
+ my @cmd = (qw(git hash-object -w -t commit --stdin));
+ debugcmd "|",@cmd;
+ print Dumper($text) if $debuglevel > 1;
+ my $child = open2($out, $in, @cmd) or die $!;
+ my $h;
+ eval {
+ print $in $text or die $!;
+ close $in or die $!;
+ $h = <$out>;
+ $h =~ m/^\w+$/ or die;
+ $h = $&;
+ printdebug "=> $h\n";
+ };
+ close $out;
+ waitpid $child, 0 == $child or die "$child $!";
+ $? and failedcmd @cmd;
+ return $h;
+}
+
# ========== playground handling ==========
# terminology: