def query(ctx): """" Execute subcommand through UNIX domain socket client. """ if not ctx.opts.argv: print("No command %s" % ctx.opts.argv[0], file=ctx.err) return 1 address = FilePath(ctx.opts.flags.address) factory = Factory() factory.ctx = ctx ctx.rs = 0 factory.protocol = QueryProtocol factory.quiet = True factory.cmd = ' '.join(ctx.opts.argv) # DEBUG: # print('Passthrough command to backend via socket: %r' % factory.cmd, file=sys.stderr) endpoint = UNIXClientEndpoint(reactor, address.path) connected = endpoint.connect(factory) def succeeded(client): return client.whenDisconnected def failed(reason): print("Could not connect:", reason.getErrorMessage(), file=ctx.err) def disconnected(ignored): reactor.stop() connected.addCallbacks(succeeded, failed) connected.addCallback(disconnected) reactor.run() return factory.ctx.rs