#!/usr/bin/python # # Copyright (C) 2007, Canonical Ltd. # Written by Daniel Holbach, # Stefano Rivera # # ################################################################## # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; version 3. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # See file /usr/share/common-licenses/GPL-3 for more details. # # ################################################################## from optparse import OptionParser import os import sys from ubuntutools.config import UDTConfig from ubuntutools.lp.libsupport import get_launchpad USAGE = "grab-attachments " def main(): p = OptionParser('Usage: %prog [options] ') p.add_option('-l', '--lpinstance', metavar='INSTANCE', dest='lpinstance', default=None, help='Launchpad instance to connect to (default: production)') p.add_option('--no-conf', dest='no_conf', default=False, action='store_true', help="Don't read config files or environment variables") opts, args = p.parse_args() if len(args) < 1: p.error('No bug numbers provided') config = UDTConfig(opts.no_conf) if opts.lpinstance is None: opts.lpinstance = config.get_value('LPINSTANCE') try: launchpad = get_launchpad("ubuntu-dev-tools", server=opts.lpinstance) for arg in args: try: number = int(arg) except: p.error("'%s' is not a valid bug number." % arg) b = launchpad.bugs[number] for a in b.attachments: f = a.data.open() filename = os.path.join(os.getcwd(), f.filename) local_file = open(filename, "w") local_file.write(f.read()) f.close() local_file.close() # no LP credentials except IOError, e: print e sys.exit(1) if __name__ == '__main__': main()