def run_client(parser, opts, extra_args, mode): if mode == "screenshot": if len(extra_args) == 0: parser.error("invalid number of arguments for screenshot mode") screenshot_filename = extra_args[0] extra_args = extra_args[1:] if mode in ("attach"): sys.stdout.write("xpra client version %s\n" % xpra.__version__) sys.stdout.flush() conn = connect_or_fail(pick_display(parser, opts, extra_args)) if opts.compression_level < 0 or opts.compression_level > 9: parser.error("Compression level must be between 0 and 9 inclusive.") if opts.quality != -1 and (opts.quality < 0 or opts.quality > 100): parser.error( "Quality must be between 0 and 100 inclusive. (or -1 to disable)") if mode == "screenshot": from xpra.client_base import ScreenshotXpraClient app = ScreenshotXpraClient(conn, opts, screenshot_filename) elif mode == "info": from xpra.client_base import InfoXpraClient app = InfoXpraClient(conn, opts) elif mode == "version": from xpra.client_base import VersionXpraClient app = VersionXpraClient(conn, opts) else: from xpra.client import XpraClient app = XpraClient(conn, opts) return do_run_client(app, conn.target, mode)
def run_client(parser, opts, extra_args, mode): if mode == "screenshot": if len(extra_args) == 0: parser.error("invalid number of arguments for screenshot mode") screenshot_filename = extra_args[0] extra_args = extra_args[1:] conn = connect_or_fail(pick_display(parser, opts, extra_args)) if opts.compression_level < 0 or opts.compression_level > 9: parser.error("Compression level must be between 0 and 9 inclusive.") if opts.jpegquality < 0 or opts.jpegquality > 100: parser.error("Jpeg quality must be between 0 and 100 inclusive.") if mode == "screenshot": from xpra.client_base import ScreenshotXpraClient app = ScreenshotXpraClient(conn, opts, screenshot_filename) elif mode == "info": from xpra.client_base import InfoXpraClient app = InfoXpraClient(conn, opts) elif mode == "version": from xpra.client_base import VersionXpraClient app = VersionXpraClient(conn, opts) else: from xpra.client import XpraClient app = XpraClient(conn, opts) def got_gibberish_msg(obj, data): if str(data).find("assword") > 0: sys.stdout.write( "Your ssh program appears to be asking for a password.\n" + GOT_PASSWORD_PROMPT_SUGGESTION) sys.stdout.flush() if str(data).find("login") >= 0: sys.stdout.write( "Your ssh program appears to be asking for a username.\n" "Perhaps try using something like 'ssh:USER@host:display'?\n") sys.stdout.flush() app.connect("received-gibberish", got_gibberish_msg) def handshake_complete(*args): if mode == "detach": sys.stdout.write("handshake-complete: detaching") app.quit(0) elif mode == "attach": sys.stdout.write("Attached (press Control-C to detach)\n") sys.stdout.flush() app.connect("handshake-complete", handshake_complete) def client_SIGINT(*args): print("received SIGINT, closing") app.quit(-signal.SIGINT) signal.signal(signal.SIGINT, client_SIGINT) try: try: return app.run() except KeyboardInterrupt, e: return -signal.SIGINT finally: app.cleanup()
def run_client(parser, opts, extra_args, mode): if mode=="screenshot": if len(extra_args)==0: parser.error("invalid number of arguments for screenshot mode") screenshot_filename = extra_args[0] extra_args = extra_args[1:] if mode in ("info", "attach"): sys.stdout.write("xpra client version %s\n" % xpra.__version__) sys.stdout.flush() conn = connect_or_fail(pick_display(parser, opts, extra_args)) if opts.compression_level < 0 or opts.compression_level > 9: parser.error("Compression level must be between 0 and 9 inclusive.") if opts.quality!=-1 and (opts.quality < 0 or opts.quality > 100): parser.error("Quality must be between 0 and 100 inclusive. (or -1 to disable)") if mode=="screenshot": from xpra.client_base import ScreenshotXpraClient app = ScreenshotXpraClient(conn, opts, screenshot_filename) elif mode=="info": from xpra.client_base import InfoXpraClient app = InfoXpraClient(conn, opts) elif mode=="version": from xpra.client_base import VersionXpraClient app = VersionXpraClient(conn, opts) else: from xpra.client import XpraClient app = XpraClient(conn, opts) def got_gibberish_msg(obj, data): if str(data).find("assword")>0: sys.stdout.write("Your ssh program appears to be asking for a password.\n" + GOT_PASSWORD_PROMPT_SUGGESTION) sys.stdout.flush() if str(data).find("login")>=0: sys.stdout.write("Your ssh program appears to be asking for a username.\n" "Perhaps try using something like 'ssh:USER@host:display'?\n") sys.stdout.flush() app.connect("received-gibberish", got_gibberish_msg) def handshake_complete(*args): from wimpiggy.log import Logger log = Logger() if mode=="detach": log.info("handshake-complete: detaching") app.quit(0) elif mode=="attach": log.info("Attached to %s (press Control-C to detach)\n" % conn.target) app.connect("handshake-complete", handshake_complete) def client_SIGINT(*args): print("received SIGINT, closing") app.quit(-signal.SIGINT) signal.signal(signal.SIGINT, client_SIGINT) try: try: return app.run() except KeyboardInterrupt, e: return -signal.SIGINT finally: app.cleanup()
def run_client(parser, opts, extra_args, mode): if mode == "screenshot": screenshot_filename = extra_args[0] extra_args = extra_args[1:] conn = connect_or_fail(pick_display(parser, opts, extra_args)) if opts.compression_level < 0 or opts.compression_level > 9: parser.error("Compression level must be between 0 and 9 inclusive.") if opts.jpegquality < 0 or opts.jpegquality > 100: parser.error("Jpeg quality must be between 0 and 100 inclusive.") if opts.title_suffix is not None and opts.title != "@title@ on @client-machine@": parser.error("use --title or --title-suffix but not both!") if mode == "screenshot": from xpra.client_base import ScreenshotXpraClient app = ScreenshotXpraClient(conn, opts, screenshot_filename) elif mode == "version": from xpra.client_base import VersionXpraClient app = VersionXpraClient(conn, opts) else: from xpra.client import XpraClient app = XpraClient(conn, opts) def got_gibberish_msg(obj, data): if "assword" in data: sys.stdout.write( "Your ssh program appears to be asking for a password.\n" + GOT_PASSWORD_PROMPT_SUGGESTION) sys.stdout.flush() if "login" in data: sys.stdout.write( "Your ssh program appears to be asking for a username.\n" "Perhaps try using something like 'ssh:USER@host:display'?\n") sys.stdout.flush() app.connect("received-gibberish", got_gibberish_msg) def handshake_complete(*args): if mode == "detach": sys.stdout.write("handshake-complete: detaching") app.quit() elif mode == "attach": sys.stdout.write("Attached (press Control-C to detach)\n") sys.stdout.flush() app.connect("handshake-complete", handshake_complete) signal.signal(signal.SIGINT, app.quit) try: app.run() finally: app.cleanup()
def run_client(parser, opts, extra_args, mode): if mode=="screenshot": screenshot_filename = extra_args[0] extra_args = extra_args[1:] conn = connect_or_fail(pick_display(parser, opts, extra_args)) if opts.compression_level < 0 or opts.compression_level > 9: parser.error("Compression level must be between 0 and 9 inclusive.") if opts.jpegquality < 0 or opts.jpegquality > 100: parser.error("Jpeg quality must be between 0 and 100 inclusive.") if opts.title_suffix is not None and opts.title!="@title@ on @client-machine@": parser.error("use --title or --title-suffix but not both!") if mode=="screenshot": from xpra.client_base import ScreenshotXpraClient app = ScreenshotXpraClient(conn, opts, screenshot_filename) elif mode=="version": from xpra.client_base import VersionXpraClient app = VersionXpraClient(conn, opts) else: from xpra.client import XpraClient app = XpraClient(conn, opts) def got_gibberish_msg(obj, data): if str(data).find("assword")>0: sys.stdout.write("Your ssh program appears to be asking for a password.\n" + GOT_PASSWORD_PROMPT_SUGGESTION) sys.stdout.flush() if str(data).find("login")>=0: sys.stdout.write("Your ssh program appears to be asking for a username.\n" "Perhaps try using something like 'ssh:USER@host:display'?\n") sys.stdout.flush() app.connect("received-gibberish", got_gibberish_msg) def handshake_complete(*args): if mode=="detach": sys.stdout.write("handshake-complete: detaching") app.quit() elif mode=="attach": sys.stdout.write("Attached (press Control-C to detach)\n") sys.stdout.flush() app.connect("handshake-complete", handshake_complete) signal.signal(signal.SIGINT, app.quit) try: app.run() finally: app.cleanup()