[PATCH 5/5] tools: Update to use 'parsemail --hash'

Stephen Finucane stephen at that.guru
Fri Nov 18 11:54:52 AEDT 2016


This replaces the older 'parser' main function.

Signed-off-by: Stephen Finucane <stephen at that.guru>
Cc: Paul Jakma <paul at jakma.org>
---
 tools/patchwork-update-commits | 18 ++++++++++++++----
 tools/post-receive.hook        | 21 +++++++++++++++------
 2 files changed, 29 insertions(+), 10 deletions(-)

diff --git a/tools/patchwork-update-commits b/tools/patchwork-update-commits
index d0f63a9..c5e8b15 100755
--- a/tools/patchwork-update-commits
+++ b/tools/patchwork-update-commits
@@ -19,8 +19,16 @@
 # along with Patchwork; if not, write to the Free Software
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-toolsdir="$(dirname "$0")"
-pwpath="${toolsdir}"/../patchwork
+BASE_DIR=`dirname $0`
+PW_DIR=`readlink -e $BASE_DIR/..`
+
+if [ -z $PW_PYTHON ]; then
+    PW_PYTHON=python2
+fi
+
+if [ -z $DJANGO_SETTINGS_MODULE ]; then
+    DJANGO_SETTINGS_MODULE=patchwork.settings.production
+fi
 
 if [ "$#" -lt 1 ]; then
     echo "usage: $0 <revspec>" >&2
@@ -29,6 +37,8 @@ fi
 
 git rev-list --reverse "$@" |
 while read commit; do
-    hash=$(git show "$commit" | python $pwpath/parser.py -#)
-    $pwpath/bin/pwclient update -s Accepted -c "$commit" -h "$hash"
+    hash=$(git show "$commit" | \
+           DJANGO_SETTINGS_MODULE="$DJANGO_SETTINGS_MODULE" \
+           $PW_PYTHON "$PW_DIR/manage.py" parsemail --hash --verbosity=0)
+    $PW_DIR/patchwork/bin/pwclient update -s Accepted -c "$commit" -h "$hash"
 done
diff --git a/tools/post-receive.hook b/tools/post-receive.hook
index a19e1b2..aba7b8a 100755
--- a/tools/post-receive.hook
+++ b/tools/post-receive.hook
@@ -30,29 +30,38 @@ STATE_MAP="refs/heads/master:Accepted"
 #
 EXCLUDE=""
 
-PWDIR=/opt/patchwork/patchwork
+PW_DIR=/opt/patchwork
 
 do_exit=0
 trap "do_exit=1" INT
 
-get_patchwork_hash()
-{
+if [ -z $PW_PYTHON ]; then
+    PW_PYTHON=python2
+fi
+
+if [ -z $DJANGO_SETTINGS_MODULE ]; then
+    DJANGO_SETTINGS_MODULE=patchwork.settings.production
+fi
+
+get_patchwork_hash() {
     local hash
-    hash=$(git show -C $1 | python $PWDIR/parser.py --hash)
+    hash=$(git show -C $1 | \
+           DJANGO_SETTINGS_MODULE="$DJANGO_SETTINGS_MODULE" \
+           $PW_PYTHON "$PW_DIR/manage.py" parsemail --hash --verbosity 0)
     echo $hash
     test -n "$hash"
 }
 
 get_patch_id() {
     local id
-    id=$($PWDIR/bin/pwclient info -h $1 2>/dev/null \
+    id=$($PW_DIR/patchwork/bin/pwclient info -h $1 2>/dev/null \
          | sed -rne 's,- id[[:space:]]*: ,,p')
     echo $id
     test -n "$id"
 }
 
 set_patch_state() {
-    $PWDIR/bin/pwclient update -s $2 -c $3 $1 2>&1
+    $PW_DIR/patchwork/bin/pwclient update -s $2 -c $3 $1 2>&1
 }
 
 update_patches() {
-- 
2.7.4



More information about the Patchwork mailing list