| 356 | |
| 357 | # Parse arguments from config file and command line |
| 358 | def parse(self, silent=False, parse_config=True): |
| 359 | if silent: # Don't display messages or quit on unknown parameter |
| 360 | original_print_message = self.parser._print_message |
| 361 | original_exit = self.parser.exit |
| 362 | |
| 363 | def silencer(parser, function_name): |
| 364 | parser.exited = True |
| 365 | return None |
| 366 | self.parser.exited = False |
| 367 | self.parser._print_message = lambda *args, **kwargs: silencer(self.parser, "_print_message") |
| 368 | self.parser.exit = lambda *args, **kwargs: silencer(self.parser, "exit") |
| 369 | |
| 370 | argv = self.argv[:] # Copy command line arguments |
| 371 | self.parseCommandline(argv, silent) # Parse argv |
| 372 | self.setAttributes() |
| 373 | if parse_config: |
| 374 | argv = self.parseConfig(argv) # Add arguments from config file |
| 375 | |
| 376 | self.parseCommandline(argv, silent) # Parse argv |
| 377 | self.setAttributes() |
| 378 | |
| 379 | if not silent: |
| 380 | if self.fileserver_ip != "*" and self.fileserver_ip not in self.ip_local: |
| 381 | self.ip_local.append(self.fileserver_ip) |
| 382 | |
| 383 | if silent: # Restore original functions |
| 384 | if self.parser.exited and self.action == "main": # Argument parsing halted, don't start ZeroNet with main action |
| 385 | self.action = None |
| 386 | self.parser._print_message = original_print_message |
| 387 | self.parser.exit = original_exit |
| 388 | |
| 389 | self.loadTrackersFile() |
| 390 | |
| 391 | # Parse command line arguments |
| 392 | def parseCommandline(self, argv, silent=False): |