New feature: Accept a list of bug numbers.

This commit is contained in:
Benjamin Drung 2010-02-13 01:57:49 +01:00
parent 3a922e8752
commit 4a143146c3

View File

@ -26,7 +26,6 @@ import glob
import fnmatch
from ubuntutools.lp.libsupport import get_launchpad
from ubuntutools.requestsync.common import raw_input_exit_on_ctrlc
COMMAND_LINE_SYNTAX_ERROR = 1
VERSION_DETECTION_FAILED = 2
@ -109,9 +108,18 @@ def test_install(dsc_file):
except subprocess.CalledProcessError:
print >> sys.stderr, "E: %s failed to install. Please check log" % (changes_file)
def main(bug_number, package, version, section, update, verbose=False, silent=False):
def main(bug_numbers, package, version, section, update, verbose=False, silent=False):
# update pbuilder
if update:
if sbuild:
subprocess.call(LogCall(["sbuild-update", dist]))
else:
cmd = ["sudo", "env", "DIST=lucid", "pbuilder", "update"]
subprocess.call(LogCall(cmd))
launchpad = get_launchpad("ubuntu-dev-tools")
for bug_number in bug_numbers:
bug = launchpad.bugs[bug_number]
task = list(bug.bug_tasks)[0]
@ -128,14 +136,6 @@ def main(bug_number, package, version, section, update, verbose=False, silent=Fa
print "version:", version
dsc_file = get_source(package, version, section)
# update pbuilder
if update:
if sbuild:
subprocess.call(LogCall(["sbuild-update", dist]))
else:
cmd = ["sudo", "env", "DIST=lucid", "pbuilder", "update"]
subprocess.call(LogCall(cmd))
build_source(dsc_file)
if piuparts:
@ -144,7 +144,10 @@ def main(bug_number, package, version, section, update, verbose=False, silent=Fa
print bug.title
print task.assignee
print task.status
raw_input_exit_on_ctrlc('Press [Enter] to continue or [Ctrl-C] to abort. ')
try:
raw_input('Press [Enter] to continue or [Ctrl-C] to abort.')
except KeyboardInterrupt:
continue
people = launchpad.people
uus = people['ubuntu-universe-sponsors']
@ -228,15 +231,19 @@ if __name__ == '__main__':
else:
assert False, "unhandled option"
if len(args) != 1:
if len(args) == 0:
if not silent:
print >> sys.stderr, "E: You must specify bug number."
print >> sys.stderr, "E: You must specify at least one bug number."
sys.exit(COMMAND_LINE_SYNTAX_ERROR)
bug_numbers = []
for arg in args:
try:
bug_number = int(args[0])
number = int(arg)
except:
if not silent:
print >> sys.stderr, "E: '%s' is not a valid bug number." % args[0]
print >> sys.stderr, "E: '%s' is not a valid bug number." % arg
sys.exit(COMMAND_LINE_SYNTAX_ERROR)
main(bug_number, package, version, section, update, verbose, silent)
bug_numbers.append(number)
main(bug_numbers, package, version, section, update, verbose, silent)