Skip to content

Commit 118dd69

Browse files
committed
support multiple node args with same name
1 parent 5a87df0 commit 118dd69

File tree

3 files changed

+14
-9
lines changed

3 files changed

+14
-9
lines changed

mytoninstaller/mytoninstaller.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -133,16 +133,18 @@ def Status(local, args):
133133
node_args = get_node_args()
134134
color_print("{cyan}===[ Node arguments ]==={endc}")
135135
for key, value in node_args.items():
136-
print(f"{key}: {value}")
136+
for v in value:
137+
print(f"{key}: {v}")
137138
#end define
138139

139140

140141
def set_node_argument(local, args):
141142
if len(args) < 1:
142-
color_print("{red}Bad args. Usage:{endc} set_node_argument <arg-name> [arg-value] [-d (to delete)]")
143+
color_print("{red}Bad args. Usage:{endc} set_node_argument <arg-name> [arg-value] [-d (to delete)].\n"
144+
"Examples: 'set_node_argument --archive-ttl 86400' or 'set_node_argument --archive-ttl -d' or 'set_node_argument -M' or 'set_node_argument --add-shard 0:2000000000000000 0:a000000000000000'")
143145
return
144146
arg_name = args[0]
145-
args = [arg_name, args[1] if len(args) > 1 else ""]
147+
args = [arg_name, " ".join(args[1:])]
146148
script_path = pkg_resources.resource_filename('mytoninstaller.scripts', 'set_node_argument.py')
147149
run_as_root(['python3', script_path] + args)
148150
color_print("set_node_argument - {green}OK{endc}")

mytoninstaller/node_args.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,18 @@ def get_node_start_command():
1818
def get_node_args(command: str = None):
1919
if command is None:
2020
command = get_node_start_command()
21-
result = {}
21+
result = {} # {key: [value1, value2]}
2222
key = ''
2323
for c in command.split(' ')[1:]:
2424
if c.startswith('--') or c.startswith('-'):
2525
if key:
26-
result[key] = ''
26+
result[key] = result.get(key, []) + ['']
2727
key = c
2828
elif key:
29-
result[key] = c
29+
result[key] = result.get(key, []) + [c]
3030
key = ''
3131
if key:
32-
result[key] = ''
32+
result[key] = result.get(key, []) + ['']
3333
return result
3434
#end define
3535

mytoninstaller/scripts/set_node_argument.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,11 @@ def set_node_arg(arg_name: str, arg_value: str = ''):
2020
if arg_value == '-d':
2121
args.pop(arg_name, None)
2222
else:
23-
args[arg_name] = arg_value
24-
new_command = command.split(' ')[0] + ' ' + ' '.join([f'{k} {v}' for k, v in args.items()])
23+
if ' ' in arg_value:
24+
args[arg_name] = arg_value.split()
25+
else:
26+
args[arg_name] = [arg_value]
27+
new_command = command.split(' ')[0] + ' ' + ' '.join([f'{k} {v}' for k, vs in args.items() for v in vs])
2528
new_service = service.replace(command, new_command)
2629
with open('/etc/systemd/system/validator.service', 'w') as f:
2730
f.write(new_service)

0 commit comments

Comments
 (0)