Commit 81c5a915 authored by Jeremy Kerr's avatar Jeremy Kerr
Browse files

Get parsemail scripts going



A couple of fixes, plus required permissions in the grant-all script.
Signed-off-by: default avatarJeremy Kerr <jk@ozlabs.org>
parent f946fa4b
......@@ -21,7 +21,7 @@
PATCHWORK_BASE="/srv/patchwork"
if $# -ne 2
if [ $# -ne 1 ]
then
echo "usage: $0 <dir>" >&2
exit 1
......@@ -29,9 +29,11 @@ fi
mail_dir="$1"
if ! -d "$mail_dir"
echo "dir: $mail_dir"
if [ ! -d "$mail_dir" ]
then
echo "$mail_dir should be a directory"?&2
echo "$mail_dir should be a directory"? >&2
exit 1
fi
......@@ -41,7 +43,7 @@ do
echo $line
PYTHONPATH="$PATCHWORK_BASE/apps":"$PATCHWORK_BASE/lib/python" \
DJANGO_SETTINGS_MODULE=settings \
"$PATCHWORK_BASE/apps/patchworkbin/parsemail.py" <
"$PATCHWORK_BASE/apps/patchwork/bin/parsemail.py" < \
"$mail_dir/$line"
done
......
......@@ -85,12 +85,15 @@ def find_author(mail):
if name is not None:
name = name.strip()
new_person = False
try:
person = Person.objects.get(email = email)
except Person.DoesNotExist:
person = Person(name = name, email = email)
new_person = True
return person
return (person, new_person)
def mail_date(mail):
t = parsedate_tz(mail.get('Date', ''))
......@@ -230,12 +233,15 @@ def main(args):
msgid = mail.get('Message-Id').strip()
author = find_author(mail)
(author, save_required) = find_author(mail)
(patch, comment) = find_content(project, mail)
if patch:
author.save()
# we delay the saving until we know we have a patch.
if save_required:
author.save()
save_required = False
patch.submitter = author
patch.msgid = msgid
patch.project = project
......@@ -245,7 +251,8 @@ def main(args):
print ex.message
if comment:
author.save()
if save_required:
author.save()
# looks like the original constructor for Comment takes the pk
# when the Comment is created. reset it here.
if patch:
......
......@@ -56,7 +56,8 @@ GRANT INSERT, SELECT ON
patchwork_person
TO "nobody";
GRANT SELECT ON
patchwork_project
patchwork_project,
patchwork_state
TO "nobody";
GRANT UPDATE, SELECT ON
patchwork_patch_id_seq,
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment