f37 -> f39
[infrastructure.git] / scripts / post-receive-email-with-diffs
index 52cbced..7723e58 100755 (executable)
@@ -175,6 +175,14 @@ generate_email()
     generate_email_footer
 }
 
+# generate a pattern for testing if a string is a hash
+hpat="";__=1; while [ $__ -le 40 ] ; do hpat=${hpat}'[0-9a-f]';__=$(($__+1)); done
+function is_hash () {
+    local hash
+    hash=$1; shift
+    case $hash in $hpat) return 0;; *) return 1;; esac
+}
+
 generate_email_header()
 {
     # --- Email (all stdout will be the email)
@@ -185,8 +193,15 @@ generate_email_header()
     else
        details="$refname_type, $short_refname,"
     fi
+    # trying to improve the layout of $describe
+    # in some cases we get a plain hash, some other times we're getting a composite like
+    # TagName-NumOfCommitsAfterTag-Hash
+    # simple first idea: if it looks like a plain hash, truncate it, 
+    # otherwise preserve as-is for now
     local shortrev
-    shortrev=$(echo $describe | cut -b1-8)
+#    shortrev=$(awk -F - '{print $NF;}' <<< $describe)
+    shortrev=$describe
+    is_hash $shortrev && shortrev="$(cut -b1-8 <<< $shortrev).." 
     # Generate header
     cat <<-EOF
        To: $recipients