forked from skylerknecht/messenger
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmessenger-cli
More file actions
executable file
·30 lines (26 loc) · 1.31 KB
/
messenger-cli
File metadata and controls
executable file
·30 lines (26 loc) · 1.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/usr/bin/env python3
import asyncio
import argparse
from messenger.manager import Manager
from messenger import BANNER
async def main(banner, manager):
parser = argparse.ArgumentParser()
parser.add_argument("-a", "--address", type=str, default="0.0.0.0",
help="IP address the server should listen on. Default is '0.0.0.0'.")
parser.add_argument("-p", "--port", type=int, default=8080,
help="Port number the server should listen on. Default is 8080.")
parser.add_argument("-s", "--ssl", nargs=2, metavar=('CERT', 'KEY'), default=None,
help="SSL certificate and key files. Expect two strings: path to the certificate and path to "
"the key.")
parser.add_argument("-e", "--encryption-key", type=str, default=None, help="The AES encryption key.")
parser.add_argument("-q", "--quiet", action="store_true", help="Suppress the banner.")
args = parser.parse_args()
if not args.quiet:
print(banner)
messenger_manager = manager(args.address, args.port, args.ssl, args.encryption_key)
await messenger_manager.start_command_line_interface()
if __name__ == '__main__':
try:
asyncio.run(main(BANNER, Manager))
except KeyboardInterrupt:
print('\rMessenger Server stopped.')