Skip to content

Commit f6e71cd

Browse files
committed
better arguments parsing
1 parent 4dafeb7 commit f6e71cd

File tree

2 files changed

+35
-10
lines changed

2 files changed

+35
-10
lines changed

arg.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import argparse
2+
parser = argparse.ArgumentParser(description="CoderBot wifi config manager and daemon initializer", prog="wifi.py")
3+
subparsers = parser.add_subparsers()
4+
up = subparsers.add_parser('updatecfg', help="update configuration")
5+
up.add_argument('mode', choices=['ap', 'client'], help='wifi mode')
6+
up.add_argument('ssid', help='wifi ssid')
7+
up.add_argument('pwd', help='wifi password')
8+
up.add_argument('name', help='coderbot unique id')
9+
args = vars(parser.parse_args())
10+
print(args)
11+

wifi.py

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import fcntl
1111
import struct
1212
import json
13+
import argparse
1314

1415
class WiFi():
1516

@@ -136,6 +137,11 @@ def set_start_as_client(cls):
136137
cls._config["wifi_mode"] = "client"
137138
cls.save_config()
138139

140+
@classmethod
141+
def set_bot_name(cls, name):
142+
cls._config["bot_name"] = name
143+
cls.save_config()
144+
139145
@classmethod
140146
def start_as_client(cls):
141147
cls.stop_dnsmasq()
@@ -224,19 +230,27 @@ def get_serial(cls):
224230
return cpuserial
225231

226232
def main():
233+
parser = argparse.ArgumentParser(description="CoderBot wifi config manager and daemon initializer", prog="wifi.py")
234+
subparsers = parser.add_subparsers()
235+
up = subparsers.add_parser('updatecfg', help="update configuration")
236+
up.add_argument('-m', '--mode', choices=['ap', 'client'], help='wifi mode')
237+
up.add_argument('-s', '--ssid', help='wifi ssid')
238+
up.add_argument('-p', '--pwd', help='wifi password')
239+
up.add_argument('-n', '--name', help='coderbot unique id')
240+
args = vars(parser.parse_args())
241+
print(args)
227242
w = WiFi()
228-
if len(sys.argv) > 2 and sys.argv[1] == "updatecfg":
229-
if len(sys.argv) > 2 and sys.argv[2] == "ap":
243+
if args:
244+
if args['mode'] == 'ap':
230245
w.set_start_as_ap()
231-
if len(sys.argv) > 4:
232-
w.set_ap_params(sys.argv[3], sys.argv[4])
233-
elif len(sys.argv) > 2 and sys.argv[2] == "client":
234-
if len(sys.argv) > 3:
235-
w.set_client_params(sys.argv[3], sys.argv[4])
246+
if args.get('ssid') and args.get('pwd'):
247+
w.set_ap_params(args['ssid'], args['pwd'])
248+
elif args['mode'] == 'client':
236249
w.set_start_as_client()
237-
elif len(sys.argv) > 3 and sys.argv[2] == "bot_name":
238-
WiFi.get_config()['bot_name'] = sys.argv[3]
239-
WiFi.save_config()
250+
if args.get('ssid') and args.get('pwd'):
251+
w.set_client_params(args['ssid'], args['pwd'])
252+
if args['name']:
253+
w.set_bot_name(args['name'])
240254
else:
241255
w.set_unique_ssid()
242256
w.start_service()

0 commit comments

Comments
 (0)