class FabricPopen(pushy.transport.BaseTransport): """ Pushy transport for Fabric, piggy-backing the Paramiko SSH connection managed by Fabric. """ def __init__(self, command, address): pushy.transport.BaseTransport.__init__(self, address) # Join arguments into a string args = command for i in range(len(args)): if " " in args[i]: args[i] = "'%s'" % args[i] command = " ".join(args) self.__channel = default_channel() self.__channel.exec_command(command) self.stdin = WrappedChannelFile(self.__channel.makefile("wb"), 1) self.stdout = WrappedChannelFile(self.__channel.makefile("rb"), 0) self.stderr = self.__channel.makefile_stderr("rb") def __del__(self): self.close() def close(self): if hasattr(self, "stdin"): self.stdin.close() self.stdout.close() self.stderr.close() self.__channel.close()
def __init__(self, command, address): pushy.transport.BaseTransport.__init__(self, address) # Join arguments into a string args = command for i in range(len(args)): if " " in args[i]: args[i] = "'%s'" % args[i] command = " ".join(args) self.__channel = default_channel() self.__channel.exec_command(command) self.stdin = WrappedChannelFile(self.__channel.makefile("wb"), 1) self.stdout = WrappedChannelFile(self.__channel.makefile("rb"), 0) self.stderr = self.__channel.makefile_stderr("rb")