def main(reactor, *argv): config = Options() config.parseOptions(argv[1:]) if config.subCommand == 'list': return (connect(reactor, config['port']).addCallback( Client.fetchTicket, config['id']).addCallback(listAttachments)) elif config.subCommand == 'get': if config.subOptions['filename']: return (getRawAttachment( config.subOptions['id'], config.subOptions['filename']).addCallback( sys.__stdout__.write)) else: return (connect(reactor, config['port']).addCallback( Client.fetchTicket, config['id']).addCallback(getLastAttachment).addCallback( sys.__stdout__.write)) elif config.subCommand == 'apply': def apply(ticket): return (getLastAttachment(ticket).addCallback( applyPatch, reactor, config, ticket)) return (connect(reactor, config['port']).addCallback( Client.fetchTicket, config['id']).addCallback(apply))
def main(reactor, *argv): config = Options() config.parseOptions(argv[1:]) if config.subCommand == 'list': return (connect(reactor, config['port']) .addCallback(Client.fetchTicket, config['id']) .addCallback(listAttachments)) elif config.subCommand == 'get': if config.subOptions['filename']: return (getRawAttachment(config.subOptions['id'], config.subOptions['filename']) .addCallback(sys.__stdout__.write)) else: return (connect(reactor, config['port']) .addCallback(Client.fetchTicket, config['id']) .addCallback(getLastAttachment) .addCallback(sys.__stdout__.write)) elif config.subCommand == 'apply': def apply(ticket): return (getLastAttachment(ticket) .addCallback(applyPatch, reactor, config, ticket)) return (connect(reactor, config['port']) .addCallback(Client.fetchTicket, config['id']) .addCallback(apply))
def getLastAttachment(response): return getRawAttachment(response['id'], response['attachments'][-1]['filename'])