#!/usr/bin/env python

"""This file is analogous to the GNU debugger's "gdbserver" command."""

from mpdb import MPdb, Restart
from mremote import RemoteWrapperServer
import sys

#1. Parse commands
#2. Create MPdb object capable of pdbservering
#3. Run script

# Should this be merged into one 'mremote.py' file with target-stuff too?
def do_pdbserver():
    """ This method sets up a pdbserver debugger that allows debuggers
    to connect to 'addr', which a protocol-specific address, i.e.
    tcp = 'tcp mydomainname.com:9876'
    serial = 'serial /dev/ttyC0'
    """
    args = sys.argv[1:]  # skip script filename
    if len(args) < 2:
        # Need address and file to debug
        return 
    addr = args[0]
    filename = args[1]

    # args to pass to the script
    if args[2:]:
        script_args = args[2:]

    server = MPdb()
    server = RemoteWrapperServer(server)
    server.do_pdbserver(addr)
    while True:
        try:
            server.runscript(filename)
            if server._user_requested_quit: break
        except Restart:
            sys.argv = list(server._program_sys_argv)
            server.msg('Restarting')

if __name__ == '__main__':
    do_pdbserver() 
