2016-11-18 91 views
-1

當特定文件提交到我們的SVN存儲庫時,我正試圖向我們的測試團隊成員發送電子郵件。我有post-commit掛鉤正常工作使用sendmail與所有適當的內容,但問題是運行sendmail命令需要時間和團隊成員會抱怨。我向TortoiseSVN控制檯發送了一條消息,讓用戶知道發生了什麼,但直到發送郵件之後纔會顯示,這使郵件實際上無用。在SVN後臺提交後臺發送電子郵件

我有兩個問題:

  1. 我可以以某種方式使我的鉤輸出此消息之前sendmail運行? echo命令在sendmail之前,但它似乎沒有太多
  2. 我可以強制sendmail命令在後臺運行嗎?

下面是腳本:

REPOS="$1" 
REV="$2" 
TXN_NAME="$3" 

# Make sure that the log message contains some text. 
SVNLOOK=/opt/bitnami/subversion/bin/svnlook 
SENDMAIL=/usr/sbin/sendmail 

AUTHOR=$($SVNLOOK author -r "$REV" "$REPOS") 
FOUND=$($SVNLOOK changed -r "$REV" "$REPOS" | grep -Pc '[U]\s+.+(file.txt)$') 

MAILLOCATION=/home/bitnami/svn/test 

MAILMESSAGE="To: [email protected]\nFrom: [email protected]\nSubject: File was modified\n\n$AUTHOR modified the file" 

if [ $FOUND -eq 1 ]; then 
    echo "You've modified the file, yada yada yada" >&2 
    echo "Note: Your commit did not fail, even though the text says it did." >&2 


    $SENDMAIL -t < $MAILLOCATION & 



    exit 1 
fi 

exit 0 

我使用eval $($SENDMAIL -t < $MAILLOCATION) &嘗試和其他一些東西作爲sendmail命令,但沒有任何幫助。

+2

順便說一下兩者:我建議檢查爲什麼sendmail命令需要年齡。 – Cyrus

+0

https://www.visualsvn.com/support/topic/00018/或http://svn.apache.org/repos/asf/subversion/trunk/tools/hook-scripts/mailer/? – bahrep

+0

@bahrep這是VisualSVN。我沒有使用它。 – Brandon

回答

0

您可以試試:

nohup $SENDMAIL -t < $MAILLOCATION &>/dev/null & 
disown 

here

相關問題