summaryrefslogtreecommitdiff
path: root/BitKeeper/triggers/post-commit
blob: d6d678a7c22188f41b74c44e36cd2ec3b3248b65 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/bin/sh

#shift
FROM=$USER@mysql.com
COMMITS=commits@lists.mysql.com
DOCS=docs-commit@mysql.com
LIMIT=10000
VERSION="maria"

if [ "$REAL_EMAIL" = "" ]
then
 echo "Warning: you must set REAL_EMAIL in your profile"
else
 FROM=$REAL_EMAIL 
fi

if [ -x /usr/sbin/sendmail ]; then
  SENDMAIL=/usr/sbin/sendmail
else
  SENDMAIL=sendmail
fi

BK_STATUS=$BK_STATUS$BK_COMMIT

if [ "$BK_STATUS" = OK ]
then 

HAS_ACTUAL_CHANGES=`bk cset -r+ -d | grep -v "^#"`
if [ "$HAS_ACTUAL_CHANGES" = "" ]
then
  echo ChangeSet had no real changes, not sending emails
  exit
fi

CHANGESET=`bk -R prs -r+ -h -d':P:::I:' ChangeSet`
CSETKEY=`bk -R prs -r+ -h -d':KEY:' ChangeSet`
BUG=`bk -R prs -r+ -h -d':C:' ChangeSet | sed -ne 's/^.*[Bb][Uu][Gg] *# *\([0-9][0-9]*\).*$/\1/p'`
WL=`bk -R prs -r+ -h -d':C:' ChangeSet | sed -ne 's/^.*[Ww][Ll] *# *\([0-9][0-9]*\).*$/ WL#\1/p'`

if [ "$BUG" = "" ]
then
  TO=dev-public@mysql.com
  BS=""
  BH=""
else
  TO=dev-bugs@mysql.com
  BS=" BUG#$BUG"
# need newline here
  BH="X-Bug: $BUG
"
fi
#++
# dev-public@ / dev-bugs@
#--
 echo "Commit successful, notifying developers at $TO"
 (
   cat <<EOF
List-ID: <bk.mysql-$VERSION>
From: $FROM
To: $TO
Subject: bk commit - $VERSION tree ($CHANGESET)${BS}${WL}
X-CSetKey: <$CSETKEY>
$BH
EOF
  bk changes -v -r+
  bk cset -r+ -d
 ) | $SENDMAIL -t

else
  echo "commit failed because '$BK_STATUS', you may need to re-clone..." 
fi