tweaked subject layout
authorThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Fri, 2 Jul 2010 12:53:12 +0000 (14:53 +0200)
committerThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Fri, 2 Jul 2010 12:53:12 +0000 (14:53 +0200)
scripts/post-receive-email-with-diffs

index c6d238b..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,9 +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
-    # git describe format: TagName-NumOfCommitsAfterTag-Hash
-    shortrev=$(echo $describe | awk -F - '{print $NF;}' | 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