chiark / gitweb /
ref updates: Break out git_reflog_action_msg
[dgit.git] / Debian / Dgit.pm
index c0ee27fc4d3ca22c2e8735069ee97e440f8fb80e..5106f8517c4e08c26a67661c5e3fcbb17575cc5e 100644 (file)
@@ -52,6 +52,7 @@ BEGIN {
                      git_get_ref git_get_symref git_for_each_ref
                       git_for_each_tag_referring is_fast_fwd
                      git_check_unmodified
+                     git_reflog_action_msg  git_update_ref_cmd
                       $package_re $component_re $deliberately_re
                      $distro_re $versiontag_re $series_filename_re
                      $extra_orig_namepart_re
@@ -225,11 +226,11 @@ sub _us () {
 }
 
 sub failmsg {
-    my $s = "@_\n";
+    my $s = "error: @_\n";
     $s =~ s/\n\n$/\n/;
     my $prefix = _us().": ";
     $s =~ s/^/$prefix/gm;
-    return $s;
+    return "\n".$s;
 }
 
 sub fail {
@@ -492,6 +493,21 @@ sub is_fast_fwd ($$) {
     }
 }
 
+sub git_reflog_action_msg ($) {
+    my ($msg) = @_;
+    my $rla = $ENV{GIT_REFLOG_ACTION};
+    $msg = "$rla: $msg" if length $rla;
+    return $msg;
+}
+
+sub git_update_ref_cmd {
+    # returns  qw(git update-ref), qw(-m), @_
+    # except that message may be modified to honour GIT_REFLOG_ACTION
+    my $msg = shift @_;
+    $msg = git_reflog_action_msg $msg;
+    return qw(git update-ref -m), $msg, @_;
+}
+
 sub changedir ($) {
     my ($newdir) = @_;
     printdebug "CD $newdir\n";