Add argsparse formatter
This commit is contained in:
parent
d12b3678b0
commit
4f7afad4e3
|
@ -14,6 +14,7 @@ import adbutils
|
||||||
import adbutils.shell
|
import adbutils.shell
|
||||||
from rich.console import Console
|
from rich.console import Console
|
||||||
from rich.prompt import Prompt
|
from rich.prompt import Prompt
|
||||||
|
from rich_argparse import RichHelpFormatter
|
||||||
|
|
||||||
from . import Files
|
from . import Files
|
||||||
from .utils import check_device, get_port, flash_boot, boot_ofox, clean_device, wait_for_bootloader, check_parts, \
|
from .utils import check_device, get_port, flash_boot, boot_ofox, clean_device, wait_for_bootloader, check_parts, \
|
||||||
|
@ -43,46 +44,50 @@ def main() -> int:
|
||||||
signal.signal(signal.SIGINT, handle_sigint)
|
signal.signal(signal.SIGINT, handle_sigint)
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(
|
parser = argparse.ArgumentParser(
|
||||||
description="Linux on Nabu deployer"
|
description="Linux on Nabu deployer",
|
||||||
|
formatter_class=lambda prog: RichHelpFormatter(
|
||||||
|
prog,
|
||||||
|
max_help_position=37
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
parser.add_argument(
|
||||||
|
"-v", "--version",
|
||||||
|
help="show version and exit",
|
||||||
|
action="store_true"
|
||||||
)
|
)
|
||||||
|
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"-d", "--device-serial",
|
"-d", "--device-serial",
|
||||||
help="Device serial"
|
help="device serial"
|
||||||
)
|
)
|
||||||
|
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"-u", "--username",
|
"-u", "--username",
|
||||||
help="User name"
|
help="linux user name"
|
||||||
)
|
)
|
||||||
|
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"-p", "--password",
|
"-p", "--password",
|
||||||
help="User password"
|
help="linux user password"
|
||||||
)
|
)
|
||||||
|
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"RootFS",
|
"RootFS",
|
||||||
help="RootFS image"
|
help="root fs image",
|
||||||
|
default=None, nargs="?"
|
||||||
)
|
)
|
||||||
|
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"-S", "--part-size",
|
"-S", "--part-size",
|
||||||
help="linux partition size in percents"
|
help="linux partition size in percents"
|
||||||
)
|
)
|
||||||
|
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"--debug",
|
"--debug",
|
||||||
help="enable debug output",
|
help="enable debug output",
|
||||||
action="store_true"
|
action="store_true"
|
||||||
)
|
)
|
||||||
|
|
||||||
parser.add_argument(
|
|
||||||
"--version",
|
|
||||||
help="show version and exit",
|
|
||||||
action="store_true"
|
|
||||||
)
|
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
if args.version:
|
if args.version:
|
||||||
|
@ -94,16 +99,19 @@ def main() -> int:
|
||||||
else:
|
else:
|
||||||
logger.setLevel(logging.INFO)
|
logger.setLevel(logging.INFO)
|
||||||
|
|
||||||
rootfs = op.abspath(args.RootFS)
|
if args.RootFS:
|
||||||
try:
|
rootfs = op.abspath(args.RootFS)
|
||||||
rootfs_magic = magic.Magic(mime=True).from_file(rootfs)
|
try:
|
||||||
logger.debug(f"RootFS magic: {rootfs_magic}")
|
rootfs_magic = magic.Magic(mime=True).from_file(rootfs)
|
||||||
if rootfs_magic not in ["application/octet-stream", "inode/blockdevice"]:
|
logger.debug(f"RootFS magic: {rootfs_magic}")
|
||||||
console.log("Invalid RootFS image")
|
if rootfs_magic not in ["application/octet-stream", "inode/blockdevice"]:
|
||||||
|
console.log("Invalid RootFS image")
|
||||||
|
return 1
|
||||||
|
except FileNotFoundError:
|
||||||
|
console.log("RootFS image not found!")
|
||||||
return 1
|
return 1
|
||||||
except FileNotFoundError:
|
else:
|
||||||
console.log("RootFS image not found!")
|
console.log(parser.parse_args("-h".split()))
|
||||||
return 1
|
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
|
|
16
poetry.lock
generated
16
poetry.lock
generated
|
@ -642,6 +642,20 @@ pygments = ">=2.13.0,<3.0.0"
|
||||||
[package.extras]
|
[package.extras]
|
||||||
jupyter = ["ipywidgets (>=7.5.1,<9)"]
|
jupyter = ["ipywidgets (>=7.5.1,<9)"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rich-argparse"
|
||||||
|
version = "1.4.0"
|
||||||
|
description = "Rich help formatters for argparse and optparse"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
files = [
|
||||||
|
{file = "rich_argparse-1.4.0-py3-none-any.whl", hash = "sha256:68b263d3628d07b1d27cfe6ad896da2f5a5583ee2ba226aeeb24459840023b38"},
|
||||||
|
{file = "rich_argparse-1.4.0.tar.gz", hash = "sha256:c275f34ea3afe36aec6342c2a2298893104b5650528941fb53c21067276dba19"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
rich = ">=11.0.0"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "setuptools"
|
name = "setuptools"
|
||||||
version = "69.5.1"
|
version = "69.5.1"
|
||||||
|
@ -689,4 +703,4 @@ files = [
|
||||||
[metadata]
|
[metadata]
|
||||||
lock-version = "2.0"
|
lock-version = "2.0"
|
||||||
python-versions = "3.11.*"
|
python-versions = "3.11.*"
|
||||||
content-hash = "e2af14ef9b15c3b3cc9b0716da5276427808f431f8d5603541dfdf390656397b"
|
content-hash = "f36325d69c03ac98f4b2bd0aed451b859ef95bc05b3c3a072da079770e683e0a"
|
||||||
|
|
|
@ -15,6 +15,7 @@ pyinstaller = "^6.6.0"
|
||||||
libusb = "^1.0.27"
|
libusb = "^1.0.27"
|
||||||
python-magic = { version = "^0.4.27", platform="linux" }
|
python-magic = { version = "^0.4.27", platform="linux" }
|
||||||
python-magic-bin = { version = "0.4.14", platform="win32" }
|
python-magic-bin = { version = "0.4.14", platform="win32" }
|
||||||
|
rich-argparse = "^1.4.0"
|
||||||
|
|
||||||
[tool.poetry.scripts]
|
[tool.poetry.scripts]
|
||||||
lon-deployer = "lon_deployer.main:run"
|
lon-deployer = "lon_deployer.main:run"
|
||||||
|
|
Reference in a new issue