__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
import argparse
from collections import OrderedDict
from enum import Enum
from typing import List, NamedTuple # noqa: F401
from uaclient import messages
HelpEntry = NamedTuple(
"HelpEntry", [("position", int), ("name", str), ("help_string", str)]
)
class HelpCategory(Enum):
class _Value:
def __init__(self, code: str, msg: str):
self.code = code
self.msg = msg
QUICKSTART = _Value("quickstart", messages.CLI_HELP_HEADER_QUICK_START)
SECURITY = _Value("security", messages.CLI_HELP_HEADER_SECURITY)
TROUBLESHOOT = _Value(
"troubleshoot", messages.CLI_HELP_HEADER_TROUBLESHOOT
)
OTHER = _Value("other", messages.CLI_HELP_HEADER_OTHER)
FLAGS = _Value("flags", messages.CLI_FLAGS)
def __str__(self):
return self.value.code
@property
def header(self):
return self.value.msg
class ProArgumentParser(argparse.ArgumentParser):
help_entries = OrderedDict(
[
(HelpCategory.QUICKSTART, []),
(HelpCategory.SECURITY, []),
(HelpCategory.TROUBLESHOOT, []),
(HelpCategory.OTHER, []),
(HelpCategory.FLAGS, []),
]
) # type: OrderedDict[HelpCategory, List[HelpEntry]]
@classmethod
def add_help_entry(
cls,
category: HelpCategory,
name: str,
help_string: str,
position: int = 0,
):
entry = HelpEntry(
position=position, name=name, help_string=help_string
)
if entry not in cls.help_entries[category]:
cls.help_entries[category].append(entry)
def __init__(self, *args, use_main_help: bool = True, **kwargs):
super().__init__(*args, **kwargs)
self.use_main_help = use_main_help
def print_help_for_command(self, command: str):
args_list = command.split()
args_list.append("--help")
try:
self.parse_args(args_list)
# We want help for any specific command,
# but without exiting right after
except SystemExit:
pass
def format_help(self):
if self.use_main_help:
return super().format_help()
help_output = self.format_usage()
for category, items in self.help_entries.items():
help_output += "\n"
help_output += "{}:".format(category.header)
help_output += "\n"
for item in sorted(items, key=lambda item: item.position):
help_output += "\n"
help_output += " {:<17}{}".format(item.name, item.help_string)
help_output += "\n"
if self.epilog:
help_output += "\n"
help_output += self.epilog
help_output += "\n"
return help_output
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| __pycache__ | Folder | 0755 |
|
|
| __init__.py | File | 9.28 KB | 0644 |
|
| api.py | File | 2.4 KB | 0644 |
|
| attach.py | File | 5.48 KB | 0644 |
|
| auto_attach.py | File | 958 B | 0644 |
|
| cli_util.py | File | 8.08 KB | 0644 |
|
| collect_logs.py | File | 1.6 KB | 0644 |
|
| commands.py | File | 3.68 KB | 0644 |
|
| config.py | File | 10.72 KB | 0644 |
|
| cve.py | File | 6.73 KB | 0644 |
|
| cves.py | File | 3.78 KB | 0644 |
|
| detach.py | File | 3.38 KB | 0644 |
|
| disable.py | File | 10.65 KB | 0644 |
|
| enable.py | File | 18.81 KB | 0644 |
|
| fix.py | File | 28.63 KB | 0644 |
|
| formatter.py | File | 8.75 KB | 0644 |
|
| help.py | File | 1.67 KB | 0644 |
|
| parser.py | File | 2.72 KB | 0644 |
|
| refresh.py | File | 2.42 KB | 0644 |
|
| security_status.py | File | 2.79 KB | 0644 |
|
| status.py | File | 2.37 KB | 0644 |
|
| system.py | File | 1.05 KB | 0644 |
|