Use argparse to add a command line switch to only connect to a single network.

This commit is contained in:
Adam Fast 2013-06-27 18:17:52 -05:00
parent e2473f99d2
commit afa9a4b596

20
ipsc.py
View File

@ -2,6 +2,7 @@ from __future__ import print_function
from twisted.internet.protocol import DatagramProtocol from twisted.internet.protocol import DatagramProtocol
from twisted.internet import reactor from twisted.internet import reactor
from twisted.internet import task from twisted.internet import task
import argparse
import binascii import binascii
import hmac import hmac
import hashlib import hashlib
@ -233,6 +234,21 @@ class IPSC(DatagramProtocol):
if __name__ == '__main__': if __name__ == '__main__':
for ipsc_network in NETWORK: parser = argparse.ArgumentParser(description="Start an IPSC client.")
reactor.listenUDP(NETWORK[ipsc_network]['LOCAL']['PORT'], IPSC(NETWORK[ipsc_network])) parser.add_argument('-n', '--network', required=False)
args = parser.parse_args()
if args.network is not None:
if args.network in NETWORK:
print("Connecting to %s" % args.network)
reactor.listenUDP(NETWORK[args.network]['LOCAL']['PORT'], IPSC(NETWORK[args.network]))
else:
print("%s is not a configured ISPC network." % args.network)
exit()
else: # connect to all
print("No network supplied, connecting to all networks.")
for ipsc_network in NETWORK:
reactor.listenUDP(NETWORK[ipsc_network]['LOCAL']['PORT'], IPSC(NETWORK[ipsc_network]))
reactor.run() reactor.run()