ubuntu-dev-tools/massfile

82 lines
1.9 KiB
Plaintext
Raw Normal View History

2007-09-27 09:44:58 +02:00
# Used Martin Pitt's excellent requestsync script, to get this started.
#!/usr/bin/env python
import os, os.path, sys, subprocess
subject = ""
assignee = ""
report = ""
pack_list = set()
instructions_file_name = "instructions"
list_file_name = "list"
def read_config():
global subject, assignee, report
for line in open(os.getcwd()+"/"+instructions_file_name).readlines():
if line.startswith("subject:"):
subject = line.split("subject: ")[1]
else:
if line.startswith("assignee:"):
assignee = line.split("assignee: ")[1]
else:
report += line
def read_list():
global pack_list
for line in open(os.getcwd()+"/"+list_file_name).readlines():
if line.strip()!="":
pack_list.add(line.strip("\n"))
#
# entry point
#
if os.path.exists(os.getcwd()+"/"+instructions_file_name):
read_config()
else:
print "%s does not exists." % (os.getcwd()+"/"+instructions_file_name)
sys.exit(1)
if os.path.exists(os.getcwd()+"/"+list_file_name):
read_list()
else:
print "%s does not exists." % (os.getcwd()+"/"+list_file_name)
sys.exit(1)
for pack in pack_list:
# generate bug report
mailtext = """ affects distros/ubuntu/%s
status confirmed
subscribe %s
%s
""" % (pack, assignee, report)
mailtext = mailtext.replace("$pack", pack)
subject = subject.replace("$pack", pack)
# sign it
sign_command = "gpg"
if os.access("/usr/bin/gnome-gpg", os.X_OK):
sign_command = "gnome-gpg"
gpg = subprocess.Popen([sign_command, "--clearsign"], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
signed_report = gpg.communicate(mailtext)[0]
assert gpg.returncode == 0
# generate email
to = "new@bugs.launchpad.net"
print """To: %s
Subject: %s
%s""" % (to, subject, signed_report)
print "Press enter to file this bug, Control-C to abort"
sys.stdin.readline()
mail_process = subprocess.Popen(["mail", "-s", subject, to],
stdin=subprocess.PIPE, stdout=subprocess.PIPE)
mail_process.communicate(signed_report)
subject = subject.replace(pack, "$pack")