releasing version 1.5.2.1
[auf-git-etc.git] / etc / hooks / post-commit
index ca5bec4..05eb620 100755 (executable)
@@ -1,16 +1,28 @@
 #!/bin/sh
 recipients="root+git" # adresse pour l'envoi du mail
 # On modifie un peu la sortie de git show :
-#   1) on insère "git hostname - " devant le nom en From:
-#   2) on remplace "[PATCH]" par "git-commit:" dans le champ Subject:
-#   3) on ajoute un champ To:
-#   4) on ajoute un champ Content-Type:
+# - on remplace le nom de l'expéditeur dans l'enveloppe par "root+git"
+# - on insère "git hostname - " devant le nom en From:
+# - on remplace "[PATCH]" par "git-commit:" dans le champ Subject:
+# - on ajoute un champ To:
+# - on ajoute des champs MIME (version, type & encodage)
 # et on envoie le tout via sendmail
 PATH=/usr/sbin:/usr/bin:/sbin:/bin
-git show --pretty=email | 
-  sed  -e '1,6s/^From: /From: git '`hostname -f`' - /' \
-       -e '1,6s/^Subject: \[PATCH\]/Subject: git-commit:/' \
-       -e '3iTo: '"${recipients}" \
-       -e '4iContent-Type: text/plain; charset=utf-8' |
-  head -c 16k | /usr/sbin/sendmail ${recipients}
+git show --pretty=email | awk '\
+BEGIN { v=0 ; t=0 ; e=0 }
+/^From /     { sub(/ [^ ]+ /," root+git ") }
+/^From: /    { sub(/:/,": git '"`hostname --fqdn`"' -") }
+/^Subject: / { sub(/\[PATCH\]/,"git-commit:") }
+/^MIME-Version: / { v=1 }
+/^Content-Type: / { t=1 }
+/^Content-Transfer-Encoding: / { e=1 }
+/^$/ {
+  print "To: '"${recipients}"'"
+  if (!v) { print "MIME-Version: 1.0" }
+  if (!t) { print "Content-Type: text/plain; charset=utf-8" }
+  if (!e) { print "Content-Transfer-Encoding: 8bits" }
+  print ; while(getline) { print } ; exit
+}
+{ print }
+' | head -c 16k | sendmail ${recipients}
 exit 0