1
0
Fork 1
mirror of https://gitlab.postmarketos.org/postmarketOS/pmbootstrap.git synced 2025-07-13 03:19:47 +03:00
pmbootstrap/pmb/types.py
Anri Dellal b8ca63dc2d
Fix types of pmb arguments (MR 2370)
- Change some arguments' types to bool to avoid type mismatch errors
  after refactoring in the future
- Add more arguments from parse/arguments with corresponding types
- Change type of pmbootstrap log --lines argument to int
2024-07-15 23:50:13 +02:00

171 lines
3.7 KiB
Python

# Copyright 2024 Caleb Connolly
# SPDX-License-Identifier: GPL-3.0-or-later
from argparse import Namespace
from pathlib import Path
from typing import Literal, Optional, TypedDict, Union
from pmb.core.arch import Arch
CrossCompileType = Optional[Union[Literal["native"], Literal["crossdirect"]]]
PathString = Union[Path, str]
Env = dict[str, PathString]
# These types are not definitive / API, they exist to describe the current
# state of things so that we can improve our type hinting coverage and make
# future refactoring efforts easier.
class PartitionLayout(TypedDict):
kernel: Optional[int]
boot: int
reserve: Optional[int]
root: int
class AportGenEntry(TypedDict):
prefixes: list[str]
confirm_overwrite: bool
# Property list generated with:
# $ rg --vimgrep "((^|\s)args\.\w+)" --only-matching | cut -d"." -f3 | sort | uniq
class PmbArgs(Namespace):
action_flasher: str
action_initfs: str
action_kconfig: str
action_netboot: str
action_test: str
add: str
all: bool
all_git: bool
all_stable: bool
android_recovery_zip: bool
apkindex_path: Path
aports: Optional[list[Path]]
arch: Optional[Arch]
as_root: bool
assume_yes: bool
auto: bool
autoinstall: bool
boot_size: str
build_default_device_arch: str
buildroot: str
built: bool
ccache: bool
ccache_size: str
cipher: str
clear_log: bool
cmdline: str
command: str
config: Path
cross: bool
details: bool
details_to_stdout: bool
deviceinfo_parse_kernel: str
devices: str
disk: Path
dry: bool
efi: bool
envkernel: bool
export_folder: Path
extra_space: str
fast: bool
file: str
filesystem: str
flash_method: str
folder: str
force: bool
fork_alpine: bool
fork_alpine_retain_branch: bool
full_disk_encryption: bool
go_mod_cache: bool
hook: str
host: str
host_qemu: bool
http: bool
ignore_depends: bool
image_size: str
image: bool
install_base: bool
install_blockdev: bool
install_cgpt: bool
install_key: bool
install_local_pkgs: bool
install_recommends: bool
is_default_channel: str
iter_time: str
jobs: str
kconfig_check_details: bool
kernel: str
keymap: str
lines: int
log: Path
mirror_alpine: str
mirror_postmarketos: str
name: str
nconfig: bool
netboot: bool
no_depends: bool
no_fde: bool
no_firewall: bool
no_image: bool
no_reboot: bool
no_sshd: bool
non_existing: str
odin_flashable_tar: bool
offline: bool
on_device_installer: bool
ondev_cp: list[tuple[str, str]]
ondev_no_rootfs: bool
output: str
overview: bool
# FIXME (#2324): figure out the args.package vs args.packages situation
package: str | list[str]
packages: list[str]
partition: str
password: str
path: Path
pkgname: str
pkgname_pkgver_srcurl: str
pkgs_local: bool
pkgs_local_mismatch: bool
pkgs_online_mismatch: bool
port: str
qemu_audio: str
qemu_cpu: str
qemu_display: str
qemu_gl: bool
qemu_kvm: bool
qemu_redir_stdio: str
qemu_tablet: bool
qemu_video: str
recovery_flash_kernel: bool
recovery_install_partition: str
ref: str
replace: bool
repository: str
reset: bool
resume: bool
rootfs: bool
rsync: bool
scripts: str
second_storage: str
selected_providers: dict[str, str]
sparse: bool
split: bool
src: str
ssh_keys: str
strict: bool
sudo_timer: bool
suffix: str
systemd: str
timeout: float
user: str
value: str
verbose: bool
verify: bool
work: Path
xauth: bool
xconfig: bool
zap: bool