1
2
3
4
5 """ Argument parsing for BRisa deployed applications.
6 """
7
8 import sys
9 import random
10 import socket
11 from optparse import OptionParser
12
13 from brisa.core import log, config, network
14
15
17 """ Parses option arguments and configuration values for the given device
18 name.
19
20 @param device_name: device name
21 @type device_name: string
22
23 @return: 2-tuple (listen_url, daemon) (daemon tells whether -d was passed)
24 @rtype: tuple
25 """
26 usage = "\nBRisa UPnP %s version %s\nusage: python prog [options] arg" \
27 % (device_name, config.manager.brisa_version)
28 parser = OptionParser(usage)
29
30 parser.add_option("-q", "--quiet",
31 action="store_false", dest="verbose")
32 parser.add_option("-i", "--address", dest="address",
33 help="set the UPnP %s IP address" % device_name)
34 parser.add_option("-p", "--port", dest="port",
35 help="set the UPnP %s Port" % device_name)
36 parser.add_option("-d", "--daemon", action="store_true",
37 dest="daemon", help="Run %s as daemon" % device_name)
38
39 (options, args) = parser.parse_args()
40
41 if len(args) != 0:
42 parser.error("incorrect number of arguments")
43
44 listen_addr = options.address
45
46 if not options.port:
47 listen_port = random.randint(10000, 65000)
48 else:
49 listen_port = int(options.port)
50
51 if listen_addr and listen_port:
52 listen_url = "http://%s:%d" % (listen_addr, listen_port)
53 else:
54 listen_url = ''
55
56 daemon = False
57 if options.daemon:
58 daemon = True
59
60 return (listen_url, daemon)
61