|
@@ -1,23 +1,24 @@
|
|
|
#!/bin/sh
|
|
#!/bin/sh
|
|
|
-# From Gerrit Code Review v2.0.19.1-4-g21d307b
|
|
|
|
|
|
|
+# From Gerrit Code Review 2.1.2-rc2-33-g7e30c72
|
|
|
#
|
|
#
|
|
|
# Part of Gerrit Code Review (http://code.google.com/p/gerrit/)
|
|
# Part of Gerrit Code Review (http://code.google.com/p/gerrit/)
|
|
|
#
|
|
#
|
|
|
# Copyright (C) 2009 The Android Open Source Project
|
|
# Copyright (C) 2009 The Android Open Source Project
|
|
|
-#
|
|
|
|
|
|
|
+#
|
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
# you may not use this file except in compliance with the License.
|
|
# you may not use this file except in compliance with the License.
|
|
|
# You may obtain a copy of the License at
|
|
# You may obtain a copy of the License at
|
|
|
-#
|
|
|
|
|
|
|
+#
|
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
|
-#
|
|
|
|
|
|
|
+#
|
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
# See the License for the specific language governing permissions and
|
|
# See the License for the specific language governing permissions and
|
|
|
# limitations under the License.
|
|
# limitations under the License.
|
|
|
-#
|
|
|
|
|
|
|
+#
|
|
|
|
|
|
|
|
|
|
+CHANGE_ID_AFTER="Bug|Issue"
|
|
|
MSG="$1"
|
|
MSG="$1"
|
|
|
|
|
|
|
|
# Check for, and add if missing, a unique Change-Id
|
|
# Check for, and add if missing, a unique Change-Id
|
|
@@ -42,22 +43,43 @@ add_ChangeId() {
|
|
|
fi
|
|
fi
|
|
|
|
|
|
|
|
id=$(_gen_ChangeId)
|
|
id=$(_gen_ChangeId)
|
|
|
- out="$MSG.OUT"
|
|
|
|
|
- ftt="$MSG.FTT"
|
|
|
|
|
- sed -e '2,${
|
|
|
|
|
- /^[A-Za-z][A-Za-z0-9-]*: /,$d
|
|
|
|
|
- }' <"$MSG" >"$out"
|
|
|
|
|
- sed -ne '2,${
|
|
|
|
|
- /^[A-Za-z][A-Za-z0-9-]*: /,$p
|
|
|
|
|
- }' <"$MSG" >"$ftt"
|
|
|
|
|
- if ! test -s "$ftt"
|
|
|
|
|
- then
|
|
|
|
|
- echo >>"$out"
|
|
|
|
|
- fi
|
|
|
|
|
- echo "Change-Id: I$id" >>"$out"
|
|
|
|
|
- cat "$ftt" >>"$out"
|
|
|
|
|
- mv -f "$out" "$MSG"
|
|
|
|
|
- rm -f "$out" "$ftt"
|
|
|
|
|
|
|
+ perl -e '
|
|
|
|
|
+ $MSG = shift;
|
|
|
|
|
+ $id = shift;
|
|
|
|
|
+ $CHANGE_ID_AFTER = shift;
|
|
|
|
|
+
|
|
|
|
|
+ undef $/;
|
|
|
|
|
+ open(I, $MSG); $_ = <I>; close I;
|
|
|
|
|
+ s|^diff --git a/.*||ms;
|
|
|
|
|
+ s|^#.*$||mg;
|
|
|
|
|
+ exit unless $_;
|
|
|
|
|
+
|
|
|
|
|
+ @message = split /\n/;
|
|
|
|
|
+ $haveFooter = 0;
|
|
|
|
|
+ $startFooter = @message;
|
|
|
|
|
+ for($line = @message - 1; $line >= 0; $line--) {
|
|
|
|
|
+ $_ = $message[$line];
|
|
|
|
|
+
|
|
|
|
|
+ ($haveFooter++, next) if /^[a-zA-Z0-9-]+:/;
|
|
|
|
|
+ next if /^[ []/;
|
|
|
|
|
+ $startFooter = $line if ($haveFooter && /^\r?$/);
|
|
|
|
|
+ last;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @footer = @message[$startFooter+1..@message];
|
|
|
|
|
+ @message = @message[0..$startFooter];
|
|
|
|
|
+ push(@footer, "") unless @footer;
|
|
|
|
|
+
|
|
|
|
|
+ for ($line = 0; $line < @footer; $line++) {
|
|
|
|
|
+ $_ = $footer[$line];
|
|
|
|
|
+ next if /^($CHANGE_ID_AFTER):/i;
|
|
|
|
|
+ last;
|
|
|
|
|
+ }
|
|
|
|
|
+ splice(@footer, $line, 0, "Change-Id: I$id");
|
|
|
|
|
+
|
|
|
|
|
+ $_ = join("\n", @message, @footer);
|
|
|
|
|
+ open(O, ">$MSG"); print O; close O;
|
|
|
|
|
+ ' "$MSG" "$id" "$CHANGE_ID_AFTER"
|
|
|
}
|
|
}
|
|
|
_gen_ChangeIdInput() {
|
|
_gen_ChangeIdInput() {
|
|
|
echo "tree $(git write-tree)"
|
|
echo "tree $(git write-tree)"
|