Test Failed
Push — master ( fcf1be...4a2af5 )
by Heiko 'riot'
04:20
created

isomer.client.isomer_client.main()   A

Complexity

Conditions 4

Size

Total Lines 31
Code Lines 25

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 4
eloc 25
nop 1
dl 0
loc 31
rs 9.28
c 0
b 0
f 0
1
import click
2
from circuits import Manager, Debugger
3
4
from isomer.client import IsomerClient
5
from isomer.logger import isolog, set_color
6
from isomer.tool import ask_password
7
8
9
def log(*args, **kwargs):
10
    """Log as emitter 'ISOCLIENT'"""
11
    isolog(*args, **kwargs, emitter="ISOCLIENT")
12
13
14
@click.command()
15
@click.option("--protocol", help="Define protocol for server (ws/wss)",
16
              type=str, default='wss')
17
@click.option("--port", "-p", help="Define port for server", type=int,
18
              default=443)
19
@click.option("--host", "-h", help="Define hostname for server", type=str,
20
              default='0.0.0.0')
21
@click.option("-u", "--username", help="Specify username", type=str,
22
              default='anonymous')
23
@click.option("-p", "--password", help="Specify password", type=str,
24
              default='')
25
@click.option("--url", help="Specify alternate url", default="websocket", type=str)
26
@click.option("--debug", help="Start debugger", is_flag=True,
27
              default=False)
28
def main(**kwargs):
29
    """Client CLI utility"""
30
31
    set_color()
32
33
    user = kwargs.get('username')
34
    if user != 'anonymous' and kwargs.get('password') == '':
35
        kwargs['password'] = ask_password()
36
37
    log(kwargs, pretty=True)
38
39
    manager = Manager()
40
    if kwargs.get('debug'):
41
        debugger = Debugger().register(manager)
42
    client = IsomerClient(**kwargs).register(manager)
43
44
    manager.run()
45
46
47
if __name__ == '__main__':
48
    main()
49