X-Git-Url: https://git.madduck.net/code/fbi-announce.git/blobdiff_plain/d32a30a0800d96a7896a00fc204567443876e18f..HEAD:/fbi-announce.sh?ds=sidebyside diff --git a/fbi-announce.sh b/fbi-announce.sh index eb0329c..7084136 100755 --- a/fbi-announce.sh +++ b/fbi-announce.sh @@ -17,11 +17,12 @@ # hooks.fbi-component an optional component name # hooks.fbi-url-template the template to the gitweb URL (containing @@sha1@@) # hooks.fbi-emailsender the sender address to use in the email +# hooks.fbi-emailcc carbon-copy recipients (comma-separated) if the message # hooks.fbi-refwidth the width of references to show (default 7) # hooks.fbi-noisy include the entire log message in the announcement # hooks.fbi-msg-template the template for the message to be sent (default: -# [@@component@@/]@@project@@: @@author@@: \ -# @@logmessage@@ [@@ref@@] @@url@@) +# {@@component@@/}@@project@@[@@ref@@]: @@author@@: \ +# @@logmessage@@ [@@url@@]) # # The hook is meant ot be run from the Git post-receive hook. # @@ -44,6 +45,7 @@ url=$(git config hooks.fbi-url-template 2>/dev/null ||:) noisy=$(git config hooks.fbi-noisy 2>/dev/null || echo false) from=$(git config hooks.fbi-emailsender 2>/dev/null ||:) to="commit@commit.ganneff.de" #TODO: possibly factor out to config +cc=$(git config hooks.fbi-emailcc 2>/dev/null ||:) # mail submission client to use if [ -n "${FBI_ANNOUNCE_TO_STDOUT:-}" ]; then @@ -69,7 +71,7 @@ url=$(echo "$url" | sed -e "s,@@sha1@@,${merged},") rawcommit=$(git cat-file commit ${merged}) author=$(echo "${rawcommit}" | sed -rne 's,^author (.+) <.*,\1,p') -logmessage=$(echo "${rawcommit}" | sed -e '1,/^$/d;s,&,\&,g;s,<,\<,g;s,>,\>,g') +logmessage=$(echo "${rawcommit}" | sed -e '1,/^$/d') ${noisy} || logmessage=$(echo "${logmessage}" | head -n2) ts=$(echo "${rawcommit}" | sed -n -e '/^author .*> \([0-9]\+\).*$/s--\1-p') @@ -77,17 +79,24 @@ ts=$(date -d "@${ts}") msg=$(git config hooks.fbi-msg-template 2>/dev/null ||:) if [ -z "${msg}" ]; then - msg="${component:+$component/}${refname}: ${author}: ${logmessage} [${ref}] ${url}" + msg="${component:+$component/}${refname}[${ref}]: ${author}: ${logmessage} [${url}]" else msg=$(echo "$msg" | sed -re 's,@@([^@]+)@@,${\1},g') eval "msg=\"$msg\"" fi +# trim $msg of empty []'s in case no URL was provided, might be better done in +# the above by making the generation conditional, but this will also do for +# now. +msg="${msg% []}" + ${sendmail} <<_eom ${from:+From: ${from} }To: ${to} -Subject: Announce ${project} +${cc:+Cc: ${cc} +}Subject: Announce ${project} Message-Id: +Content-type: text/plain; charset=utf-8 ${msg} _eom